Re: overlayfs 4.19: unable to make backup link: Invalid cross-device link

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, Nov 14, 2018 at 02:09:01PM +0200, Amir Goldstein wrote:

[..]
> Vivek, Mark,
> 
> Either of you care to implement dropping privileges for the duration
> of unionmount-testsuite test cases (in between mounts and unmounts)?

Hi Amir,

I think it will be good to drop priviliges while running
unionmount-testsuite.

BTW, docker build used to run as root/priviliged user. Is that not the case
anymore? Why did it fail to begin with.

Thanks
Vivek

> 
> Thanks,
> Amir.
> 
> ---
> 
> diff --git a/fs/overlayfs/dir.c b/fs/overlayfs/dir.c
> index c6289147c787..82c129bfe58d 100644
> --- a/fs/overlayfs/dir.c
> +++ b/fs/overlayfs/dir.c
> @@ -651,6 +651,18 @@ static int ovl_symlink(struct inode *dir, struct
> dentry *dentry,
>         return ovl_create_object(dentry, S_IFLNK, 0, link);
>  }
> 
> +static int ovl_set_link_redirect(struct dentry *dentry)
> +{
> +       const struct cred *old_cred;
> +       int err;
> +
> +       old_cred = ovl_override_creds(dentry->d_sb);
> +       err = ovl_set_redirect(dentry, false);
> +       revert_creds(old_cred);
> +
> +       return err;
> +}
> +
>  static int ovl_link(struct dentry *old, struct inode *newdir,
>                     struct dentry *new)
>  {
> @@ -670,7 +682,7 @@ static int ovl_link(struct dentry *old, struct
> inode *newdir,
>                 goto out_drop_write;
> 
>         if (ovl_is_metacopy_dentry(old)) {
> -               err = ovl_set_redirect(old, false);
> +               err = ovl_set_link_redirect(old);
>                 if (err)
>                         goto out_drop_write;
>         }



[Index of Archives]     [Linux Filesystems Devel]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux