From: "Darrick J. Wong" <djwong@kernel.org>
To: Alejandro Colomar <alx.manpages@gmail.com>
Cc: linux-man@vger.kernel.org, Amir Goldstein <amir73il@gmail.com>,
Michael Kerrisk <mtk.manpages@gmail.com>,
Luis Henriques <lhenriques@suse.de>,
Steve French <sfrench@samba.org>,
Greg KH <gregkh@linuxfoundation.org>,
Anna Schumaker <anna.schumaker@netapp.com>,
Jeff Layton <jlayton@kernel.org>,
Miklos Szeredi <miklos@szeredi.hu>,
Trond Myklebust <trond.myklebust@hammerspace.com>,
Alexander Viro <viro@zeniv.linux.org.uk>,
"Darrick J. Wong" <darrick.wong@oracle.com>,
Dave Chinner <dchinner@redhat.com>,
Nicolas Boichat <drinkcat@chromium.org>,
Ian Lance Taylor <iant@google.com>,
Luis Lozano <llozano@chromium.org>,
Andreas Dilger <adilger@dilger.ca>,
Olga Kornievskaia <aglo@umich.edu>,
Christoph Hellwig <hch@infradead.org>,
ceph-devel <ceph-devel@vger.kernel.org>,
linux-kernel <linux-kernel@vger.kernel.org>,
CIFS <linux-cifs@vger.kernel.org>,
samba-technical <samba-technical@lists.samba.org>,
linux-fsdevel <linux-fsdevel@vger.kernel.org>,
Linux NFS Mailing List <linux-nfs@vger.kernel.org>,
Walter Harms <wharms@bfs.de>
Subject: Re: [RFC v4] copy_file_range.2: Update cross-filesystem support for 5.12
Date: Thu, 4 Mar 2021 09:13:50 -0800 [thread overview]
Message-ID: <20210304171350.GC7267@magnolia> (raw)
In-Reply-To: <20210304093806.10589-1-alx.manpages@gmail.com>
On Thu, Mar 04, 2021 at 10:38:07AM +0100, Alejandro Colomar wrote:
> Linux 5.12 fixes a regression.
>
> Cross-filesystem (introduced in 5.3) copies were buggy.
>
> Move the statements documenting cross-fs to BUGS.
> Kernels 5.3..5.11 should be patched soon.
>
> State version information for some errors related to this.
>
> Reported-by: Luis Henriques <lhenriques@suse.de>
> Reported-by: Amir Goldstein <amir73il@gmail.com>
> Related: <https://lwn.net/Articles/846403/>
> Cc: Greg KH <gregkh@linuxfoundation.org>
> Cc: Michael Kerrisk <mtk.manpages@gmail.com>
> Cc: Anna Schumaker <anna.schumaker@netapp.com>
> Cc: Jeff Layton <jlayton@kernel.org>
> Cc: Steve French <sfrench@samba.org>
> Cc: Miklos Szeredi <miklos@szeredi.hu>
> Cc: Trond Myklebust <trond.myklebust@hammerspace.com>
> Cc: Alexander Viro <viro@zeniv.linux.org.uk>
> Cc: "Darrick J. Wong" <darrick.wong@oracle.com>
> Cc: Dave Chinner <dchinner@redhat.com>
> Cc: Nicolas Boichat <drinkcat@chromium.org>
> Cc: Ian Lance Taylor <iant@google.com>
> Cc: Luis Lozano <llozano@chromium.org>
> Cc: Andreas Dilger <adilger@dilger.ca>
> Cc: Olga Kornievskaia <aglo@umich.edu>
> Cc: Christoph Hellwig <hch@infradead.org>
> Cc: ceph-devel <ceph-devel@vger.kernel.org>
> Cc: linux-kernel <linux-kernel@vger.kernel.org>
> Cc: CIFS <linux-cifs@vger.kernel.org>
> Cc: samba-technical <samba-technical@lists.samba.org>
> Cc: linux-fsdevel <linux-fsdevel@vger.kernel.org>
> Cc: Linux NFS Mailing List <linux-nfs@vger.kernel.org>
> Cc: Walter Harms <wharms@bfs.de>
> Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>
> ---
>
> v3:
> - Don't remove some important text.
> - Reword BUGS.
> v4:
> - Reword.
> - Link to BUGS.
>
> Thanks, Amir, for all the help and better wordings.
>
> Cheers,
>
> Alex
>
> ---
> man2/copy_file_range.2 | 27 +++++++++++++++++++++++----
> 1 file changed, 23 insertions(+), 4 deletions(-)
>
> diff --git a/man2/copy_file_range.2 b/man2/copy_file_range.2
> index 611a39b80..f58bfea8f 100644
> --- a/man2/copy_file_range.2
> +++ b/man2/copy_file_range.2
> @@ -169,6 +169,9 @@ Out of memory.
> .B ENOSPC
> There is not enough space on the target filesystem to complete the copy.
> .TP
> +.BR EOPNOTSUPP " (since Linux 5.12)"
> +The filesystem does not support this operation.
> +.TP
> .B EOVERFLOW
> The requested source or destination range is too large to represent in the
> specified data types.
> @@ -184,10 +187,17 @@ or
> .I fd_out
> refers to an active swap file.
> .TP
> -.B EXDEV
> +.BR EXDEV " (before Linux 5.3)"
> +The files referred to by
> +.IR fd_in " and " fd_out
> +are not on the same filesystem.
> +.TP
> +.BR EXDEV " (since Linux 5.12)"
> The files referred to by
> .IR fd_in " and " fd_out
> -are not on the same mounted filesystem (pre Linux 5.3).
> +are not on the same filesystem,
> +and the source and target filesystems are not of the same type,
> +or do not support cross-filesystem copy.
> .SH VERSIONS
> The
> .BR copy_file_range ()
> @@ -200,8 +210,11 @@ Areas of the API that weren't clearly defined were clarified and the API bounds
> are much more strictly checked than on earlier kernels.
> Applications should target the behaviour and requirements of 5.3 kernels.
> .PP
> -First support for cross-filesystem copies was introduced in Linux 5.3.
> -Older kernels will return -EXDEV when cross-filesystem copies are attempted.
> +Since Linux 5.12,
> +cross-filesystem copies can be achieved
> +when both filesystems are of the same type,
> +and that filesystem implements support for it.
> +See BUGS for behavior prior to 5.12.
> .SH CONFORMING TO
> The
> .BR copy_file_range ()
> @@ -226,6 +239,12 @@ gives filesystems an opportunity to implement "copy acceleration" techniques,
> such as the use of reflinks (i.e., two or more inodes that share
> pointers to the same copy-on-write disk blocks)
> or server-side-copy (in the case of NFS).
> +.SH BUGS
> +In Linux kernels 5.3 to 5.11,
> +cross-filesystem copies were implemented by the kernel,
> +if the operation was not supported by individual filesystems.
> +However, on some virtual filesystems,
> +the call failed to copy, while still reporting success.
...success, or merely a short copy?
(The rest looks reasonable (at least by c_f_r standards) to me.)
--D
> .SH EXAMPLES
> .EX
> #define _GNU_SOURCE
> --
> 2.30.1.721.g45526154a5
>
next prev parent reply other threads:[~2021-03-04 17:15 UTC|newest]
Thread overview: 93+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <CAOQ4uxiFGjdvX2-zh5o46pn7RZhvbGHH0wpzLPuPOom91FwWeQ@mail.gmail.com>
2021-02-15 15:43 ` [PATCH v2] vfs: prevent copy_file_range to copy across devices Luis Henriques
2021-02-15 16:02 ` Trond Myklebust
2021-02-16 0:25 ` Steve French
2021-02-15 16:34 ` Amir Goldstein
2021-02-15 16:53 ` Trond Myklebust
2021-02-15 17:24 ` Amir Goldstein
2021-02-15 18:57 ` Trond Myklebust
2021-02-15 19:43 ` Amir Goldstein
2021-02-16 11:17 ` Luis Henriques
2021-02-16 11:28 ` gregkh
2021-02-16 12:01 ` Luis Henriques
2021-02-16 12:08 ` Greg KH
2021-02-16 13:51 ` Amir Goldstein
2021-02-16 16:42 ` Luis Henriques
2021-02-16 17:44 ` Amir Goldstein
2021-02-16 18:55 ` Luis Henriques
2021-02-16 19:20 ` Amir Goldstein
2021-02-16 19:27 ` Anna Schumaker
2021-02-16 19:31 ` Steve French
2021-02-16 19:40 ` Amir Goldstein
2021-02-16 21:15 ` Steve French
2021-02-17 8:08 ` Amir Goldstein
2021-02-17 17:26 ` [PATCH v3] vfs: fix copy_file_range regression in cross-fs copies Luis Henriques
2021-02-17 20:47 ` Amir Goldstein
2021-02-18 0:56 ` Nicolas Boichat
2021-02-18 5:32 ` Olga Kornievskaia
2021-02-18 6:47 ` Amir Goldstein
2021-02-18 16:28 ` Olga Kornievskaia
2021-02-18 7:43 ` Christoph Hellwig
2021-02-18 0:50 ` [PATCH v2] vfs: prevent copy_file_range to copy across devices Andreas Dilger
2021-02-18 7:34 ` gregkh
2021-02-16 18:54 ` Andreas Dilger
2021-02-17 4:45 ` Nicolas Boichat
2021-02-18 7:42 ` Christoph Hellwig
2021-02-18 9:10 ` Amir Goldstein
2021-02-18 10:29 ` Luis Henriques
2021-02-18 12:15 ` Luis Henriques
2021-02-18 12:49 ` Amir Goldstein
2021-02-18 14:36 ` [PATCH v4] vfs: fix copy_file_range regression in cross-fs copies Luis Henriques
2021-02-18 14:58 ` Amir Goldstein
2021-02-18 15:17 ` [PATCH v5] " Luis Henriques
2021-02-18 15:53 ` Amir Goldstein
2021-02-18 16:35 ` Luis Henriques
2021-02-18 17:18 ` [PATCH v6] " Luis Henriques
2021-02-19 21:18 ` Olga Kornievskaia
2021-02-19 21:52 ` Amir Goldstein
2021-02-21 19:58 ` [PATCH v7] " Luis Henriques
2021-02-22 3:00 ` Nicolas Boichat
2021-02-22 10:24 ` [PATCH v8] " Luis Henriques
2021-02-22 10:46 ` Amir Goldstein
2021-02-22 16:25 ` dai.ngo
2021-02-23 10:32 ` Luis Henriques
2021-02-23 15:28 ` Amir Goldstein
2021-02-23 15:29 ` dai.ngo
2021-02-23 16:02 ` dai.ngo
2021-02-23 16:47 ` Amir Goldstein
2021-02-23 16:57 ` dai.ngo
[not found] ` <e3eed18b-fc7e-e687-608b-7f662017329c@oracle.com>
2021-02-23 17:33 ` Amir Goldstein
2021-02-24 0:13 ` dai.ngo
2021-02-23 17:56 ` Luis Henriques
2021-02-23 17:13 ` Olga Kornievskaia
2021-02-24 1:00 ` Olga Kornievskaia
2021-02-24 10:23 ` Luis Henriques
2021-02-24 10:44 ` Nicolas Boichat
2021-04-09 5:23 ` Nicolas Boichat
2021-04-09 13:39 ` Luis Henriques
2021-04-09 13:50 ` Amir Goldstein
2021-04-23 4:40 ` Nicolas Boichat
2021-05-03 8:54 ` Luis Henriques
2021-02-24 14:23 ` [PATCH] copy_file_range.2: Kernel v5.12 updates Luis Henriques
2021-02-24 16:10 ` Amir Goldstein
2021-02-25 10:21 ` Luis Henriques
2021-02-26 10:13 ` Alejandro Colomar (man-pages)
2021-02-26 10:34 ` Amir Goldstein
2021-02-26 11:15 ` Alejandro Colomar (man-pages)
2021-02-26 13:59 ` Jeff Layton
2021-02-26 21:26 ` Alejandro Colomar (man-pages)
2021-02-26 22:18 ` Alejandro Colomar (man-pages)
2021-02-27 5:41 ` Amir Goldstein
2021-02-27 12:20 ` Alejandro Colomar (man-pages)
2021-02-27 13:49 ` [RFC v2] copy_file_range.2: Update cross-filesystem support for 5.12 Alejandro Colomar
2021-02-27 16:00 ` Amir Goldstein
2021-02-27 23:08 ` [PATCH] copy_file_range.2: Kernel v5.12 updates Steve French
2021-02-28 7:35 ` Amir Goldstein
2021-02-28 22:25 ` Steve French
2021-03-01 6:18 ` Amir Goldstein
2021-03-01 14:41 ` [RFC v3] copy_file_range.2: Update cross-filesystem support for 5.12 Alejandro Colomar
2021-03-01 14:58 ` Amir Goldstein
2021-03-04 9:38 ` [RFC v4] " Alejandro Colomar
2021-03-04 17:13 ` Darrick J. Wong [this message]
2021-03-04 18:24 ` Alejandro Colomar (man-pages)
2021-03-04 23:50 ` Darrick J. Wong
2021-02-18 20:41 ` [PATCH v2] vfs: prevent copy_file_range to copy across devices Steve French
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20210304171350.GC7267@magnolia \
--to=djwong@kernel.org \
--cc=adilger@dilger.ca \
--cc=aglo@umich.edu \
--cc=alx.manpages@gmail.com \
--cc=amir73il@gmail.com \
--cc=anna.schumaker@netapp.com \
--cc=ceph-devel@vger.kernel.org \
--cc=darrick.wong@oracle.com \
--cc=dchinner@redhat.com \
--cc=drinkcat@chromium.org \
--cc=gregkh@linuxfoundation.org \
--cc=hch@infradead.org \
--cc=iant@google.com \
--cc=jlayton@kernel.org \
--cc=lhenriques@suse.de \
--cc=linux-cifs@vger.kernel.org \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-man@vger.kernel.org \
--cc=linux-nfs@vger.kernel.org \
--cc=llozano@chromium.org \
--cc=miklos@szeredi.hu \
--cc=mtk.manpages@gmail.com \
--cc=samba-technical@lists.samba.org \
--cc=sfrench@samba.org \
--cc=trond.myklebust@hammerspace.com \
--cc=viro@zeniv.linux.org.uk \
--cc=wharms@bfs.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).