On Fri, Jun 18, 2010 at 09:54:24AM +0200, Kevin Wolf wrote: > qcow2 files are expected to grow, so this probably doesn't help us. At > best we could try to detect if the file grows and decide if to use > sync_file_range or fdatasync.
No. sync_file_range is always unsafe for use with a real filesystem. It never even calls into the filesystem and never flushes the disk write cache. For our use case it's exactly a no-op. > Of course, it would be better to have a flag or something to include the > necessary metadata, but I have no idea how it's implemented and if this > is easily possible. We could add a flag to it. But rather than adding more crap to this bastard that should never have been added I'd rather add a real fsync_range system call. Note that for our use case it doesn't matter anyway. For an image file accessed with cache=none there will be no data in the pagecache, and the writeback of the inode and associated metadata (btree blocks or indirect blocks) will be same wether we give it a range or not, and same for the disk cache flush.