All of lore.kernel.org
 help / color / mirror / Atom feed
From: Olga Kornievskaia <olga.kornievskaia@gmail.com>
To: david@fromorbit.com
Cc: willy@infradead.org, trond.myklebust@hammerspace.com,
	Anna Schumaker <anna.schumaker@netapp.com>,
	viro@zeniv.linux.org.uk, Steve French <smfrench@gmail.com>,
	Miklos Szeredi <miklos@szeredi.hu>,
	linux-nfs <linux-nfs@vger.kernel.org>,
	linux-fsdevel@vger.kernel.org, linux-cifs@vger.kernel.org,
	linux-unionfs@vger.kernel.org, linux-man@vger.kernel.org
Subject: Re: [PATCH 1/1] man-page: copy_file_range(2) allow for cross-device copies
Date: Mon, 29 Oct 2018 11:52:18 -0400	[thread overview]
Message-ID: <CAN-5tyEGoDma_mn3srk8pKR65Aq4EGWgmNU4oRML_aA9Enk72Q@mail.gmail.com> (raw)
In-Reply-To: <CAN-5tyHPT4oYgWJTJg2pMbKoKCoqkf+dow1FXayD+r9gMZnh=Q@mail.gmail.com>

On Mon, Oct 29, 2018 at 10:25 AM Olga Kornievskaia
<olga.kornievskaia@gmail.com> wrote:
>
> On Sat, Oct 27, 2018 at 9:33 PM Dave Chinner <david@fromorbit.com> wrote:
> >
> > On Sat, Oct 27, 2018 at 06:23:39AM -0700, Matthew Wilcox wrote:
> > > On Sat, Oct 27, 2018 at 08:12:40PM +1100, Dave Chinner wrote:
> > > > > @@ -131,7 +132,8 @@ There is not enough space on the target filesystem to complete the copy.
> > > > >  .B EXDEV
> > > > >  The files referred to by
> > > > >  .IR file_in " and " file_out
> > > > > -are not on the same mounted filesystem.
> > > > > +are not on the same mounted filesystem when the kernel does not support
> > > > > +cross device file copy.
> > > >
> > > > Kernel can support cross device file copy, the filesystem may not.
> > > >
> > > > EXDEV
> > > >     One of the files specified by file_in and file_out are on a
> > > >     filesystem that does not support cross device copies.
> > >
> > > I mentioned this in my last review, and Olga pointed out that one of
> > > the changes in this patch means the kernel will do the copy using
> > > do_splice_direct if the filesystem doesn't support cross-device copying.
> > > We should keep this error documented for those on old kernels, but the
> > > kernel will never return -EXDEV any more.
> >
> > Uh, wot? Where's the patch named "VFS: enable copy_file_range() for
> > all filesystems"? That shoul dnot be a detail hidden inside some
> > other patch that multiple people completely miss during review.
>
> The fact that cross-device check was moved is what allowed for all
> filesystems to use copy_file_range(). I think choosing the words of
> "moving cross device check" was also appropriate title for the VFS
> patch.

I wasn't completely correct. It was the check removal and then also
allowing for -EXDEV error to keep going with the  do_splice_direct().
I could have left EXDEV being an error but thought it would be
beneficial to add such ability. One reason to keep all the changes in
one patch was said to be so that porting back all of this
functionality is included.

So one option would be keep EXDEV as an error if that's what folks
want then this side-effect would not be a problem and the focus would
be on what it was in the first place : removal (or relocation) of the
cross device check into the filesystems.

> To other what you thought was the main change was a side-effect or at
> least that's not where the discussion was centered. The discussion was
> focused on the fact that there is cross device of same and different
> file systems and such discussion deemed appropriate to be noted
> clearly in the commit message. The proposed commit message below
> doesn't capture it.
>
> I'm fine with the commit message below as well. If that's acceptable
> to others. I can change the commit to the wording below.
>
> When I started reading the message I thought your comments where about
> the "man-page" patch that it lacked the wording including in the VFS
> patch. So to clarify, do you have any objections to the wording in the
> man-page patch or was this just about the VFS patch?
>
> > If we are completely changing the kernel's behaviour, the patch
> > should be explicitly named to call out the change of behaviour, and
> > the commit message should clearly explain the change being made and
> > why.
> >
> > /me goes looking.
> >
> > Yup, it is only mentione din passing as a side-effect of an
> > implementation change. That's back to front. Describe the behaviour
> > change, what users will see and the reasons for making the change,
> > leave the code to describe exactly what the change is. Then you can
> > describe the actions needed to make the new functionality work. e.g.
> > The first patch shoul dbe described as:
> >
> > VFS: generic cross-device copy_file_range() support for all filesystems
>
> > From: ....
> >
> > In preparation for enabling cross-device offloading of
> > copy_file_range() functionality, first enable generic cross-device
> > support by allowing copy_file_range() to fall back to a page cache
> > based physical data copy. This means the copy_file_range() syscall
> > will never fail with EXDEV, and so in future userspace will not need
> > to detect or provide a fallback for failed cross-device copies
> > anymore.
> >
> > This requires pushing the cross device support checks down into the
> > filesystem ->copy_file_range methods and falling back to the page
> > cache copy if they return EXDEV.
> >
> > Further, clone_file_range() is only supported within a filesystem,
> > so we must also check that the files belong to the same superblock
> > before calling ->clone_file_range(). If they are on different
> > superblocks, skip the attempt to clone the file and instead try to
> > copy the file.
> >
> > S-o-B: .....
>
> >
> >
> > Cheers,
> >
> > Dave.
> > --
> > Dave Chinner
> > david@fromorbit.com

  reply	other threads:[~2018-10-29 15:52 UTC|newest]

Thread overview: 54+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-10-26 20:10 [PATCH v4 00/11] client-side support for "inter" SSC copy Olga Kornievskaia
2018-10-26 20:10 ` [PATCH v4 01/11] VFS: move cross device copy_file_range() check into filesystems Olga Kornievskaia
2018-10-26 21:23   ` Matthew Wilcox
2018-10-26 22:10   ` Steve French
2018-10-27  9:09   ` Dave Chinner
2018-10-29 14:31     ` Olga Kornievskaia
2018-10-27 11:11   ` Jeff Layton
2018-10-26 20:10 ` [PATCH 1/1] man-page: copy_file_range(2) allow for cross-device copies Olga Kornievskaia
2018-10-27  9:12   ` Dave Chinner
2018-10-27 13:23     ` Matthew Wilcox
2018-10-28  1:33       ` Dave Chinner
2018-10-28  2:39         ` Matthew Wilcox
2018-10-29 14:25         ` Olga Kornievskaia
2018-10-29 15:52           ` Olga Kornievskaia [this message]
2018-10-29 17:49             ` Amir Goldstein
2018-10-26 20:10 ` [PATCH v4 02/11] VFS: copy_file_range check validity of input source offset Olga Kornievskaia
2018-10-26 21:26   ` Matthew Wilcox
2018-10-29 16:09     ` Olga Kornievskaia
2018-10-27  9:27   ` Dave Chinner
2018-10-29 14:41     ` Olga Kornievskaia
2018-10-30  9:03       ` Dave Chinner
2018-10-30 13:40         ` Olga Kornievskaia
2018-10-30 23:40           ` Dave Chinner
2018-10-30 21:10         ` Olga Kornievskaia
2018-10-30 21:12           ` Olga Kornievskaia
2018-10-31  0:14           ` Dave Chinner
2018-10-31  0:14             ` Dave Chinner
2018-10-31 14:51             ` Olga Kornievskaia
2018-10-31 23:33               ` Dave Chinner
2018-10-26 20:10 ` [PATCH v4 03/11] NFS: NFSD defining nl4_servers structure needed by both Olga Kornievskaia
2018-10-27 11:14   ` Jeff Layton
2018-10-29 14:28     ` Olga Kornievskaia
2018-10-26 20:10 ` [PATCH v4 04/11] NFS: add COPY_NOTIFY operation Olga Kornievskaia
2018-10-26 20:10 ` [PATCH v4 05/11] NFS: add ca_source_server<> to COPY Olga Kornievskaia
2018-10-26 20:10 ` [PATCH v4 06/11] NFS: also send OFFLOAD_CANCEL to source server Olga Kornievskaia
2018-10-26 20:10 ` [PATCH v4 07/11] NFS: inter ssc open Olga Kornievskaia
2018-10-26 20:10 ` [PATCH v4 08/11] NFS: skip recovery of copy open on dest server Olga Kornievskaia
2018-10-26 20:10 ` [PATCH v4 09/11] NFS: for "inter" copy treat ESTALE as ENOTSUPP Olga Kornievskaia
2018-10-26 20:10 ` [PATCH v4 10/11] NFS: COPY handle ERR_OFFLOAD_DENIED Olga Kornievskaia
2018-10-26 20:10 ` [PATCH v4 11/11] NFS: replace cross device check in copy_file_range Olga Kornievskaia
2018-10-26 21:22   ` Matthew Wilcox
2018-10-27 11:08   ` Jeff Layton
2018-10-27 13:26     ` Matthew Wilcox
2018-10-29 14:28       ` Olga Kornievskaia
  -- strict thread matches above, loose matches on Subject: below --
2018-10-30 20:56 [PATCH v7 00/11] client-side support for "inter" SSC copy Olga Kornievskaia
2018-10-30 20:56 ` [PATCH 1/1] man-page: copy_file_range(2) allow for cross-device copies Olga Kornievskaia
2018-10-29 19:03 [PATCH v6 00/12] client-side support for "inter" SSC copy Olga Kornievskaia
2018-10-29 19:03 ` [PATCH 1/1] man-page: copy_file_range(2) allow for cross-device copies Olga Kornievskaia
2018-10-25 21:51 [PATCH v3 00/11] client-side support for "inter" SSC copy Olga Kornievskaia
2018-10-25 21:51 ` [PATCH 1/1] man-page: copy_file_range(2) allow for cross-device copies Olga Kornievskaia
2018-10-24 19:58 [PATCH v2 00/13] client-side support for "inter" SSC copy Olga Kornievskaia
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

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=CAN-5tyEGoDma_mn3srk8pKR65Aq4EGWgmNU4oRML_aA9Enk72Q@mail.gmail.com \
    --to=olga.kornievskaia@gmail.com \
    --cc=anna.schumaker@netapp.com \
    --cc=david@fromorbit.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=smfrench@gmail.com \
    --cc=trond.myklebust@hammerspace.com \
    --cc=viro@zeniv.linux.org.uk \
    --cc=willy@infradead.org \
    /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.