Message ID | 20181024195837.35532-5-olga.kornievskaia@gmail.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | client-side support for "inter" SSC copy | expand |
On Wed, Oct 24, 2018 at 10:59 PM Olga Kornievskaia <olga.kornievskaia@gmail.com> wrote: > > From: Olga Kornievskaia <kolga@netapp.com> > > VFS copy_file_range was relaxed to allow for cross-device copy. > Add a check for now, to disallow cross-device copy offload until > appropriate support is added. > > Signed-off-by: Olga Kornievskaia <kolga@netapp.com> > ` > --- > fs/overlayfs/file.c | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/fs/overlayfs/file.c b/fs/overlayfs/file.c > index aeaefd2..5282853 100644 > --- a/fs/overlayfs/file.c > +++ b/fs/overlayfs/file.c > @@ -483,6 +483,9 @@ static ssize_t ovl_copy_file_range(struct file *file_in, loff_t pos_in, > struct file *file_out, loff_t pos_out, > size_t len, unsigned int flags) > { > + if (file_in->f_inode->i_sb != file_out->f_inode->i_sb) > + return -EXDEV; > Note that this could be relaxed later on to same fs type allowing for cross container copy_file_range() to be performced as clone_file_range() when upper is a shared fs with clone support. Don't worry about it though, I can make this change later after testing the use case. As long as this patch comes in the series *before* relaxing the VFS check, You may add: Reviewed-by: Amir Goldstein <amir73il@gmail.com> Thanks, Amir.
On Thu, Oct 25, 2018 at 1:54 AM Amir Goldstein <amir73il@gmail.com> wrote: > > On Wed, Oct 24, 2018 at 10:59 PM Olga Kornievskaia > <olga.kornievskaia@gmail.com> wrote: > > > > From: Olga Kornievskaia <kolga@netapp.com> > > > > VFS copy_file_range was relaxed to allow for cross-device copy. > > Add a check for now, to disallow cross-device copy offload until > > appropriate support is added. > > > > Signed-off-by: Olga Kornievskaia <kolga@netapp.com> > > ` > > --- > > fs/overlayfs/file.c | 3 +++ > > 1 file changed, 3 insertions(+) > > > > diff --git a/fs/overlayfs/file.c b/fs/overlayfs/file.c > > index aeaefd2..5282853 100644 > > --- a/fs/overlayfs/file.c > > +++ b/fs/overlayfs/file.c > > @@ -483,6 +483,9 @@ static ssize_t ovl_copy_file_range(struct file *file_in, loff_t pos_in, > > struct file *file_out, loff_t pos_out, > > size_t len, unsigned int flags) > > { > > + if (file_in->f_inode->i_sb != file_out->f_inode->i_sb) > > + return -EXDEV; > > > > Note that this could be relaxed later on to same fs type > allowing for cross container copy_file_range() to be performced > as clone_file_range() when upper is a shared fs with clone support. > > Don't worry about it though, I can make this change later after testing > the use case. > > As long as this patch comes in the series *before* relaxing the VFS check, > You may add: > Reviewed-by: Amir Goldstein <amir73il@gmail.com> Thank you. I will reorder the patches and yes I thought the individual FS maintainers/folks would relax the check according to their functionality. This patch just provides same semantics with respect to the cross device checking but at the driver level. > > Thanks, > Amir.
On Thu, Oct 25, 2018 at 1:54 AM Amir Goldstein <amir73il@gmail.com> wrote: > > On Wed, Oct 24, 2018 at 10:59 PM Olga Kornievskaia > <olga.kornievskaia@gmail.com> wrote: > > > > From: Olga Kornievskaia <kolga@netapp.com> > > > > VFS copy_file_range was relaxed to allow for cross-device copy. > > Add a check for now, to disallow cross-device copy offload until > > appropriate support is added. > > > > Signed-off-by: Olga Kornievskaia <kolga@netapp.com> > > ` > > --- > > fs/overlayfs/file.c | 3 +++ > > 1 file changed, 3 insertions(+) > > > > diff --git a/fs/overlayfs/file.c b/fs/overlayfs/file.c > > index aeaefd2..5282853 100644 > > --- a/fs/overlayfs/file.c > > +++ b/fs/overlayfs/file.c > > @@ -483,6 +483,9 @@ static ssize_t ovl_copy_file_range(struct file *file_in, loff_t pos_in, > > struct file *file_out, loff_t pos_out, > > size_t len, unsigned int flags) > > { > > + if (file_in->f_inode->i_sb != file_out->f_inode->i_sb) > > + return -EXDEV; > > > > Note that this could be relaxed later on to same fs type > allowing for cross container copy_file_range() to be performced > as clone_file_range() when upper is a shared fs with clone support. > > Don't worry about it though, I can make this change later after testing > the use case. > > As long as this patch comes in the series *before* relaxing the VFS check, > You may add: > Reviewed-by: Amir Goldstein <amir73il@gmail.com> Given that this patch was merged I didn't add "reviewed-by" line. Please let me know I need to add this line to the main VFS patch. > > Thanks, > Amir.
diff --git a/fs/overlayfs/file.c b/fs/overlayfs/file.c index aeaefd2..5282853 100644 --- a/fs/overlayfs/file.c +++ b/fs/overlayfs/file.c @@ -483,6 +483,9 @@ static ssize_t ovl_copy_file_range(struct file *file_in, loff_t pos_in, struct file *file_out, loff_t pos_out, size_t len, unsigned int flags) { + if (file_in->f_inode->i_sb != file_out->f_inode->i_sb) + return -EXDEV; + return ovl_copyfile(file_in, pos_in, file_out, pos_out, len, flags, OVL_COPY); }