diff options
author | Rick Macklem <rmacklem@FreeBSD.org> | 2025-08-13 19:35:59 +0000 |
---|---|---|
committer | Rick Macklem <rmacklem@FreeBSD.org> | 2025-08-13 19:35:59 +0000 |
commit | cce64f2e68511652a0edc3e3482d801115e91b43 (patch) | |
tree | a2514f9a5dbf769c50d37681445ecee38cff1cb3 /sys/dev/viawd | |
parent | b9de52a0ec07088006dc373c2d882f410aa51f1e (diff) |
Commit 37b2cb5ecb0f added VFS support for block cloning.
This patch uses the VFS changes to add support for the
NFSv4.2 Clone operation, which copies ranges within one
or two files via block cloning.
The Clone operation is similar to Copy, but always
completes the "copy on write". It is not allowed to
return partially done. It also allows copying of bytes
ranges within the same file, which the NFSv4.2 Copy
operation does not allow.
Unless COPY_FILE_RANGE_CLONE has been specified for
copy_file_range(2), a failing Clone operation will be
redone with a Copy.
The Clone operation requires that offsets (and length,
if it does not go to EOF in the input file) be aligned
to _PC_CLONE_BLKSIZE. This is similar to what ZFS
implements now.
At this time, ZFS is the only exportable file system
that supports block cloning. As such, the Clone operation
is only supported for ZFS exports at this time.
Fixes: 37b2cb5ecb0f ("vfs: Add support for file cloning to VOP_COPY_FILE_RANGE")
Diffstat (limited to 'sys/dev/viawd')
0 files changed, 0 insertions, 0 deletions