]> www.infradead.org Git - users/jedix/linux-maple.git/commit
fuse: add COPY_FILE_RANGE_64 that allows large copies
authorMiklos Szeredi <mszeredi@redhat.com>
Tue, 5 Aug 2025 15:10:56 +0000 (17:10 +0200)
committerMiklos Szeredi <mszeredi@redhat.com>
Wed, 27 Aug 2025 12:29:43 +0000 (14:29 +0200)
commit7a37f55af7af868119b4fb69285f5fa03ba8cf35
treefb1ff3541b55e8242111dd751eb24616d3c114a7
parent9d81ba6d49a7457784f0b6a71046818b86ec7e44
fuse: add COPY_FILE_RANGE_64 that allows large copies

The FUSE protocol uses struct fuse_write_out to convey the return value of
copy_file_range, which is restricted to uint32_t.  But the COPY_FILE_RANGE
interface supports a 64-bit size copies and there's no reason why copies
should be limited to 32-bit.

Introduce a new op COPY_FILE_RANGE_64, which is identical, except the
number of bytes copied is returned in a 64-bit value.

If the fuse server does not support COPY_FILE_RANGE_64, fall back to
COPY_FILE_RANGE.

Reported-by: Florian Weimer <fweimer@redhat.com>
Closes: https://lore.kernel.org/all/lhuh5ynl8z5.fsf@oldenburg.str.redhat.com/
Signed-off-by: Miklos Szeredi <mszeredi@redhat.com>
fs/fuse/file.c
fs/fuse/fuse_i.h
include/uapi/linux/fuse.h