On Thu, Jun 16, 2011 at 12:48 PM, Christoph Hellwig <hch@xxxxxxxxxxxxx> wrote: > You also missed: > > " This system call does not flush disk write caches and thus does not > provide any data integrity on systems with volatile disk write > caches." > > so it's not safe if you either have a cache, or are using btrfs, or > are using a sparse image, or are using an image preallocated using > fallocate/posix_fallocate. Uh-oh. Someone needs to apply this patch to sync_file_range(): diff --git a/fs/sync.c b/fs/sync.c index ba76b96..32078aa 100644 --- a/fs/sync.c +++ b/fs/sync.c @@ -277,6 +277,8 @@ SYSCALL_DEFINE(sync_file_range)(int fd, loff_t offset, loff_t nbytes, int fput_needed; umode_t i_mode; + WARN_ONCE(1, "when this breaks, you get to keep both pieces"); + ret = -EINVAL; if (flags & ~VALID_FLAGS) goto out; >> What's the right thing to do here? Is fdatasync() sufficient? > > Yes. We'll fix that up. Thanks Christoph! Pekka -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html