fuse: fix copy_file_range() in the writeback case
authorMiklos Szeredi <mszeredi@redhat.com>
Tue, 28 May 2019 11:22:50 +0000 (13:22 +0200)
committerMiklos Szeredi <mszeredi@redhat.com>
Tue, 28 May 2019 11:22:50 +0000 (13:22 +0200)
commita2bc92362941006830afa3dfad6caec1f99acbf5
tree67bfa4c3dd3517520f7edeecdf4ef51e93362429
parent4a2abf99f9c2877039006b8dfb3ec4e0d1278fe8
fuse: fix copy_file_range() in the writeback case

Prior to sending COPY_FILE_RANGE to userspace filesystem, we must flush all
dirty pages in both the source and destination files.

This patch adds the missing flush of the source file.

Tested on libfuse-3.5.0 with:

  libfuse/example/passthrough_ll /mnt/fuse/ -o writeback
  libfuse/test/test_syscalls /mnt/fuse/tmp/test

Fixes: 88bc7d5097a1 ("fuse: add support for copy_file_range()")
Cc: <stable@vger.kernel.org> # v4.20
Signed-off-by: Miklos Szeredi <mszeredi@redhat.com>
fs/fuse/file.c