|
|
|
|
|
|
|
|
|
|
xen-devel
Re: [Xen-devel] [PATCH]: Make Xen 3.1 IDE flush on O_DIRECT with drive c
On Tue, Feb 26, 2008 at 09:41:30AM -0500, Chris Lalancette wrote:
> All,
> Long ago Xen added code to the device model to basically do an fsync()
> after every data write if the user in the guest specified that IDE write
> caching
> should be disabled. This works fine, except in the case where you are doing
> O_DIRECT writes inside the guest (ala dd if=/dev/zero of=/dev/hdb
> oflag=direct).
> This is because you can get out of ide_write_dma_cb() in the middle of the
> loop
> without going through the logic to sync. This simple patch makes sure that
> you
> always check (and sync) inside the write callback.
>
> This patch applies to xen-3.1-testing.hg; I still have to test 3.2 (and the
> new
> AIO code) to see if it is affected by this bug.
>
> Signed-off-by: Chris Lalancette <clalance@xxxxxxxxxx>
Signed-off-by: Daniel P. Berrange <berrange@xxxxxxxxxx>
I've gone through the logic in ide_write_dma_cb() and breaking out of the
loop is the thing todo in this scenario. The new AIO code in 3.2 looks like
it suffers from a similar problem, with one of the code paths missing the
sync due to a mis-placed label / goto pair.
Dan.
--
|=- Red Hat, Engineering, Emerging Technologies, Boston. +1 978 392 2496 -=|
|=- Perl modules: http://search.cpan.org/~danberr/ -=|
|=- Projects: http://freshmeat.net/~danielpb/ -=|
|=- GnuPG: 7D3B9505 F3C9 553F A1DA 4AC2 5648 23C1 B3DF F742 7D3B 9505 -=|
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|
|
|
|
|