The branch main has been updated by rmacklem: URL: https://cgit.FreeBSD.org/src/commit/?id=7a9834041c91596af83fa15768321cdc7290880b
commit 7a9834041c91596af83fa15768321cdc7290880b Author: Rick Macklem <rmack...@freebsd.org> AuthorDate: 2025-08-09 20:33:53 +0000 Commit: Rick Macklem <rmack...@freebsd.org> CommitDate: 2025-08-09 20:33:53 +0000 vfs: Put the definition of COPY_FILE_RANGE_CLONE in unistd.h kib@ noted that having COPY_FILE_RANGE_CLONE defined in vnode.h was inappropriate, since it is meant to be used from user space as well as kernel space. This patch moves it into sys/unistd.h and reverts the addition of it in vnode.h. Reviewed by: kib Differential Revision: https://reviews.freebsd.org/D51838 Fixes: 37b2cb5ecb0f ("vfs: Add support for file cloning to VOP_COPY_FILE_RANGE") --- sys/sys/unistd.h | 9 +++++++++ sys/sys/vnode.h | 17 ++++------------- 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/sys/sys/unistd.h b/sys/sys/unistd.h index 7ab2f021e408..5743dc1c8033 100644 --- a/sys/sys/unistd.h +++ b/sys/sys/unistd.h @@ -216,6 +216,15 @@ #define CLOSE_RANGE_CLOEXEC (1<<2) #define CLOSE_RANGE_CLOFORK (1<<3) +/* + * copy_file_range flags visible to user space. + * High order 8 bits reserved for kernel flags. + * Allocate from bit 23 down, to try and avoid conflicts with + * future Linux flags. + */ +#define COPY_FILE_RANGE_CLONE 0x00800000 /* Require cloning. */ +#define COPY_FILE_RANGE_USERFLAGS (COPY_FILE_RANGE_CLONE) + #endif /* __BSD_VISIBLE */ #endif /* !_SYS_UNISTD_H_ */ diff --git a/sys/sys/vnode.h b/sys/sys/vnode.h index 8080e9edd8c3..074769d55c2d 100644 --- a/sys/sys/vnode.h +++ b/sys/sys/vnode.h @@ -397,21 +397,8 @@ struct vattr { */ #define VLKTIMEOUT (hz / 20 + 1) -/* copy_file_range flags */ -#define COPY_FILE_RANGE_KFLAGS 0xff000000 - -/* - * copy_file_range flags visible to user space. - * Allocate high bits first, to try and avoid conflicting with Linux. - */ -#define COPY_FILE_RANGE_CLONE 0x00800000 /* Require cloning. */ -#define COPY_FILE_RANGE_USERFLAGS (COPY_FILE_RANGE_CLONE) - #ifdef _KERNEL -/* copy_file_range flags only usable in the kernel */ -#define COPY_FILE_RANGE_TIMEO1SEC 0x01000000 /* Return after 1sec. */ - #ifdef MALLOC_DECLARE MALLOC_DECLARE(M_VNODE); #endif @@ -634,6 +621,10 @@ typedef void vop_getpages_iodone_t(void *, vm_page_t *, int, int); #define VN_OPEN_INVFS 0x00000008 #define VN_OPEN_WANTIOCTLCAPS 0x00000010 +/* copy_file_range kernel flags */ +#define COPY_FILE_RANGE_KFLAGS 0xff000000 +#define COPY_FILE_RANGE_TIMEO1SEC 0x01000000 /* Return after 1sec. */ + /* * Public vnode manipulation functions. */