All of lore.kernel.org
 help / color / mirror / Atom feed
From: Amir Goldstein <amir73il@gmail.com>
To: Olga Kornievskaia <olga.kornievskaia@gmail.com>
Cc: trond.myklebust@hammerspace.com,
	Anna Schumaker <anna.schumaker@netapp.com>,
	Al Viro <viro@zeniv.linux.org.uk>,
	Steve French <smfrench@gmail.com>,
	Miklos Szeredi <miklos@szeredi.hu>,
	Linux NFS Mailing List <linux-nfs@vger.kernel.org>,
	linux-fsdevel <linux-fsdevel@vger.kernel.org>,
	linux-cifs@vger.kernel.org,
	overlayfs <linux-unionfs@vger.kernel.org>,
	linux-man@vger.kernel.org
Subject: Re: [PATCH v2 01/13] VFS permit cross device vfs_copy_file_range
Date: Thu, 25 Oct 2018 07:34:31 +0300	[thread overview]
Message-ID: <CAOQ4uxgx1YZfn2GsTQhGzxgZ4AMxMocCOrKOEo8StVVfr=2cyQ@mail.gmail.com> (raw)
In-Reply-To: <20181024195837.35532-2-olga.kornievskaia@gmail.com>

On Wed, Oct 24, 2018 at 10:58 PM Olga Kornievskaia
<olga.kornievskaia@gmail.com> wrote:
>
> From: Olga Kornievskaia <kolga@netapp.com>
>
> This patch removes the check for source and destination files to
> come from the same superblock. This feature was of interest to
> NFS as well as CIFS communities.
>
> Specifically, this feature is needed to allow for NFSv4.2 copy offload
> to be done between different NFSv4.2 servers. SMBv3 copy offload between
> different servers would be able to use this as well.
>
> Removal of the check implies that passed in source and destination
> files can come from different superblocks of the same file system
> type or different. It is upto each individual copy_file_range()
> file system implementation to decide what type of copy it is
> capable of doing and return -EXDEV in cases support is lacking.
>
> There are 3 known implementator of copy_file_range() f_op: NFS,
> CIFS, OverlayFS. NFS and CIFS are interested to support cross-device
> copy offload but do not support cross file system types copy offload.
> Following patches will add appropriate checks in each of the drivers.
>

That should be the other way around - first add limitation inside filesystems
then relax vfs check. otherwise you leave a bug in the middle of bisect.

> If the copy_file_range() errors with EXDEV, the code would fallback
> on doing do_splice_direct() copying which in itself is beneficial.
>
> Adding wording to the vfs.txt and porting documentation about the
> new support for cross-device copy offload.
>
> Signed-off-by: Olga Kornievskaia <kolga@netapp.com>
> ---
>  Documentation/filesystems/porting | 7 +++++++
>  Documentation/filesystems/vfs.txt | 6 +++++-
>  fs/read_write.c                   | 9 +++------
>  3 files changed, 15 insertions(+), 7 deletions(-)
>
> diff --git a/Documentation/filesystems/porting b/Documentation/filesystems/porting
> index 7b7b845..ebb4954 100644
> --- a/Documentation/filesystems/porting
> +++ b/Documentation/filesystems/porting
> @@ -622,3 +622,10 @@ in your dentry operations instead.
>         alloc_file_clone(file, flags, ops) does not affect any caller's references.
>         On success you get a new struct file sharing the mount/dentry with the
>         original, on failure - ERR_PTR().
> +--
> +[mandatory]
> +       ->copy_file_range() may now be passed files which belong to two
> +       different superblocks of the same file system type or which belong
> +       to two different filesystems types all together. As before, the
> +        destination's copy_file_range() is the function which is called.
> +       If it cannot copy ranges from the source, it should return -EXDEV.
> diff --git a/Documentation/filesystems/vfs.txt b/Documentation/filesystems/vfs.txt
> index a6c6a8a..34c0e8c 100644
> --- a/Documentation/filesystems/vfs.txt
> +++ b/Documentation/filesystems/vfs.txt
> @@ -1,5 +1,6 @@
>
>               Overview of the Linux Virtual File System
> +- [fs] nfs: Don't let readdirplus revalidate an inode that was marked as stale (Benjamin Coddington) [1429514 1416532]
>

???

Thanks,
Amir.

  reply	other threads:[~2018-10-25  4:34 UTC|newest]

Thread overview: 31+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-10-24 19:58 [PATCH v2 00/13] client-side support for "inter" SSC copy Olga Kornievskaia
2018-10-24 19:58 ` [PATCH v2 01/13] VFS permit cross device vfs_copy_file_range Olga Kornievskaia
2018-10-25  4:34   ` Amir Goldstein [this message]
2018-10-24 19:58 ` [PATCH 1/1] man-page: copy_file_range(2) allow for cross-device copies Olga Kornievskaia
2018-10-25  4:28   ` Amir Goldstein
2018-10-25 15:26     ` Olga Kornievskaia
2018-10-25 17:24     ` Matthew Wilcox
2018-10-25 17:47       ` Olga Kornievskaia
2018-10-25 18:08         ` Matthew Wilcox
2018-10-25 18:14           ` Olga Kornievskaia
2018-10-24 19:58 ` [PATCH v2 02/13] CIFS: add cross-device check for copy_file_range Olga Kornievskaia
2018-10-24 19:58 ` [PATCH v2 03/13] OverlayFS: " Olga Kornievskaia
2018-10-25  5:54   ` Amir Goldstein
2018-10-25 15:31     ` Olga Kornievskaia
2018-10-26 12:12     ` Olga Kornievskaia
2018-10-24 19:58 ` [PATCH v2 04/13] NFS: add cross file system " Olga Kornievskaia
2018-10-25  4:38   ` Amir Goldstein
2018-10-25 15:28     ` Olga Kornievskaia
2018-10-25 16:54       ` Amir Goldstein
2018-10-25 17:12         ` Olga Kornievskaia
2018-10-24 19:58 ` [PATCH v2 05/13] VFS: Don't copy beyond the end of the file Olga Kornievskaia
2018-10-24 19:58 ` [PATCH v2 06/13] NFS NFSD defining nl4_servers structure needed by both Olga Kornievskaia
2018-10-24 19:58 ` [PATCH v2 07/13] NFS add COPY_NOTIFY operation Olga Kornievskaia
2018-10-24 19:58 ` [PATCH v2 08/13] NFS add ca_source_server<> to COPY Olga Kornievskaia
2018-10-24 19:58 ` [PATCH v2 09/13] NFS also send OFFLOAD_CANCEL to source server Olga Kornievskaia
2018-10-24 19:58 ` [PATCH v2 10/13] NFS inter ssc open Olga Kornievskaia
2018-10-25  1:31   ` kbuild test robot
2018-10-25  1:31   ` [PATCH] fix ptr_ret.cocci warnings kbuild test robot
2018-10-24 19:58 ` [PATCH v2 11/13] NFS skip recovery of copy open on dest server Olga Kornievskaia
2018-10-24 19:58 ` [PATCH v2 12/13] NFS for "inter" copy treat ESTALE as ENOTSUPP Olga Kornievskaia
2018-10-24 19:58 ` [PATCH v2 13/13] NFS COPY handle ERR_OFFLOAD_DENIED Olga Kornievskaia

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='CAOQ4uxgx1YZfn2GsTQhGzxgZ4AMxMocCOrKOEo8StVVfr=2cyQ@mail.gmail.com' \
    --to=amir73il@gmail.com \
    --cc=anna.schumaker@netapp.com \
    --cc=linux-cifs@vger.kernel.org \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-man@vger.kernel.org \
    --cc=linux-nfs@vger.kernel.org \
    --cc=linux-unionfs@vger.kernel.org \
    --cc=miklos@szeredi.hu \
    --cc=olga.kornievskaia@gmail.com \
    --cc=smfrench@gmail.com \
    --cc=trond.myklebust@hammerspace.com \
    --cc=viro@zeniv.linux.org.uk \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.