]> git.ipfire.org Git - thirdparty/kernel/stable.git/commit
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)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 11 Jun 2019 10:19:16 +0000 (12:19 +0200)
commit62fc9aae41bd9f2f5da55847c5e30be838106e90
tree56b295ff80a1ddf6aea0f8be8d7d9cd295298337
parentdbe54b432a013431c8557716acdb15b364a10d85
fuse: fix copy_file_range() in the writeback case

commit a2bc92362941006830afa3dfad6caec1f99acbf5 upstream.

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>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
fs/fuse/file.c