From nobody Fri Aug 22 22:05:00 2025 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4c7vPS42qvz65JtH; Fri, 22 Aug 2025 22:05:00 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R12" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4c7vPS3Ssxz3QF6; Fri, 22 Aug 2025 22:05:00 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1755900300; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=FMHYpywFH9NAsOOIeftpPX/rEfFK4TOuaJm5kOguPxU=; b=rehoCEacIA0IJkmtc/Q3zO/uXw/fnnQ6T5aM//VXOBin4ChG07iIr0H4QFO/W+J612krw0 tmAnOx4ZOuZe7PqggfXFg3RJxOlAQca6SeOg4Iax/jHMxKHYT/WDsVt+lSoUhW5oTE75Je BJuM5q4vFbLMr9LVPh9VCXxEUHTc3kSjC6X7F8Xfax856W+udjtLRqCNlQKHOnkXMyLwnD Gf6fROXI5zC0HZawEJEZLXWk4Gkl+1Y4KYhWAoOFdqQIPs7QSd74beBV+K8nMIKZMsfqy1 okoOC6Bog1RR6UetJRIEoGfc/iBF7CWBuandyFhLLewaVgITqBWVxXa0PdT0ew== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1755900300; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=FMHYpywFH9NAsOOIeftpPX/rEfFK4TOuaJm5kOguPxU=; b=dDqClJcW/rzMQxCoRG7e9oiEbsyT2LDeqIE2ziUmVBUWK2Qd33lztwjcSzLxJpoBFEL2xZ Pn+FXRIFEz8XpSOuFMJAfjEIjf+PTYh1R8xJYlkPaMfpRzUS9DkmKdjpVywtIM4bOIPP+/ /UL+6HjC6qF1nf8B9s4ME1KcmQ46+nGIR+uHxnx+S4HeUOgz3WieuN1UkkUl0+C9nvkh7s mYT9957QqY83ZSOE9FDng98k2GpxaOjb4nyQN1k3zmSLbR0L7iZF6RVrosxaIjyhngQxAP y+kIIjfaLpvFywGgt+vlFF+4R3baHgyF1BgJU0iQ2BdvzDECwvWlOGCLQ5cjKg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1755900300; a=rsa-sha256; cv=none; b=PWRdLmXvVmF9MlFAGvidopEm+ZRBynf8F0s0vLLP78jPPBgBEmCqSsjIiBfEWS0lugo+4n RPCWr1Vqd635xjGrBIj+xLQtWG4RqB8Mm/DZBrV3RrjqpvVMkpggWEMffxdLkcCdSbXha1 VB2i265TsJildGJlofX+atKgqfgGdHVJTGQsqnwba+KtPZp7YCr7tHBaD1twyZWR4sncdW j784f2I1czuqtTXk+lGdIMFq5IoNo978ZeEpQYpnE30cOUYGalagmJqiWgGnHmsQeCVSgn EFM95hrkB+TPigL1qbbj5uivCHuUlBmO8MMxJHWo+zW4VvdBrCaXddIcDmO0lw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4c7vPS2p1vz14Fs; Fri, 22 Aug 2025 22:05:00 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 57MM50ex059207; Fri, 22 Aug 2025 22:05:00 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 57MM50ml059204; Fri, 22 Aug 2025 22:05:00 GMT (envelope-from git) Date: Fri, 22 Aug 2025 22:05:00 GMT Message-Id: <202508222205.57MM50ml059204@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Rick Macklem Subject: git: e39c9ac21358 - main - copy_file_range.2: Document the COPY_FILE_RANGE_CLONE flag List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-all@freebsd.org Sender: owner-dev-commits-src-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: rmacklem X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: e39c9ac213584b5398d9c1c045af5ca07c11f210 Auto-Submitted: auto-generated The branch main has been updated by rmacklem: URL: https://cgit.FreeBSD.org/src/commit/?id=e39c9ac213584b5398d9c1c045af5ca07c11f210 commit e39c9ac213584b5398d9c1c045af5ca07c11f210 Author: Rick Macklem AuthorDate: 2025-08-22 22:01:59 +0000 Commit: Rick Macklem CommitDate: 2025-08-22 22:01:59 +0000 copy_file_range.2: Document the COPY_FILE_RANGE_CLONE flag Commit 37b2cb5ecb0f added support for the COPY_FILE_RANGE_CLONE flags argument to copy_file_range(2). This patch documents this flags argument. This is a content change. Reviewed by: kib Differential Revision: https://reviews.freebsd.org/D51938 Fixes: 37b2cb5ecb0f ("vfs: Add support for file cloning to VOP_COPY_FILE_RANGE") --- lib/libsys/copy_file_range.2 | 35 +++++++++++++++++++++++++++++++---- 1 file changed, 31 insertions(+), 4 deletions(-) diff --git a/lib/libsys/copy_file_range.2 b/lib/libsys/copy_file_range.2 index bcd9170842d5..829a5a5d3c13 100644 --- a/lib/libsys/copy_file_range.2 +++ b/lib/libsys/copy_file_range.2 @@ -23,7 +23,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.Dd December 28, 2023 +.Dd August 16, 2025 .Dt COPY_FILE_RANGE 2 .Os .Sh NAME @@ -74,6 +74,7 @@ argument must be opened for reading and the .Fa outfd argument must be opened for writing, but not .Dv O_APPEND . +.Pp If .Fa inoffp or @@ -101,9 +102,29 @@ respectively will be used/updated and the file offset for or .Fa outfd respectively will not be affected. -The +.Pp +The only +.Fa flags +argument currently defined is +.Dv COPY_FILE_RANGE_CLONE . +When this flag is set, +.Fn copy_file_range +will return +.Er EOPNOTSUPP +if the copy cannot be done via +block cloning. +When .Fa flags -argument must be 0. +is 0, a file system may do the copy via block cloning +or by data copying. +Block cloning is only possible when the offsets (plus +.Fa len +if not to EOF on the input file) are block +aligned. +The correct block alignment can normally be acquired via the +.Dv _PC_CLONE_BLKSIZE +query for +.Xr pathconf 2 . .Pp This system call attempts to maintain holes in the output file for the byte range being copied. @@ -203,9 +224,15 @@ refers to a directory. File system that stores .Fa outfd is full. +.It Bq Er EOPNOTSUPP +Cannot do the copy via block cloning and the +.Dv COPY_FILE_RANGE_CLONE +.Fa flags +argument is specified. .El .Sh SEE ALSO -.Xr lseek 2 +.Xr lseek 2 , +.Xr pathconf 2 .Sh STANDARDS The .Fn copy_file_range