Hi Greg, On Fri, Mar 28, 2014 at 11:31 PM, Greg KH <greg@kroah.com> wrote:
On Fri, Mar 28, 2014 at 11:16:30PM +0530, Rishi Agrawal wrote:
Hi All,
I want to wait in my code till the IO actually goes to the disk.
That's an issue, as you really don't know what a "disk" is from within the kernel :)
Back up, what exactly are you trying to do?
Its a virtual machine, so no worries here, more over I am using a loop device.
For example
struct buffer_head *bh=sb_bread(sb, 20)
strcpy(bh->b_data, "Some Data");
/* mark and sync */ mark_buffer_dirty(bh); sync_dirty_buffer(bh);
The above code only adds the bh to the request queue and returns.
And that's all you should need. Why do you feel you need more?
Actually I am developing a kernel module through which I am writing to the device. I am not able to the written data in some cases, the code path is same everywhere. So I thought maybe its not getting flushed on the disk and I am expecting the write on the disk too early.
I want to wait till the write completes as performance is not I am worried about right now.
thanks,
greg k-h
-- Regards, Rishi Agrawal