Am 12.05.2010 17:05, schrieb Alexander Graf: > Kevin Wolf wrote: >> Am 10.05.2010 23:51, schrieb Alexander Graf: >> >>> Usually the guest can tell the host to flush data to disk. In some cases we >>> don't want to flush though, but try to keep everything in cache. >>> >>> So let's add a new parameter to -drive that allows us to set the flushing >>> behavior to "on" or "off", defaulting to enabling the guest to flush. >>> >>> Signed-off-by: Alexander Graf <ag...@suse.de> >>> >> >> What about another cache=... value instead of adding more options? I'm >> quite sure you'll only ever need this with writeback caching. So we >> could have cache=none|writethrough|writeback|wb-noflush or something >> like that. >> >> > > Yes, cache=volatile seems reasonable. Or cache=unsafe. > >>> --- >>> block/raw-posix.c | 13 +++++++++++++ >>> >> >> This is obviously wrong. If you want to introduce new behaviour to the >> block layer, you must do it consistently and not just for one block >> driver. So these changes should be made to the generic functions in >> block.c instead. >> > > How so? The callback functions are called using bdrv->drv->xxx. If I > modify that pointer, I end up affecting all other virtual disks as well.
By doing the check in bdrv_flush/bdrv_aio_flush before this function pointer is even called. Kevin