Re: [PATCH 2/7] ovl: During copy up, first copy up metadata and then data

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

 



On Mon, Oct 2, 2017 at 4:40 PM, Vivek Goyal <vgoyal@xxxxxxxxxx> wrote:
> This just helps with later patches where after copying up metadata, we
> skip data copying step, if needed.
>
> Signed-off-by: Vivek Goyal <vgoyal@xxxxxxxxxx>
> ---
>  fs/overlayfs/copy_up.c | 24 ++++++++++++------------
>  1 file changed, 12 insertions(+), 12 deletions(-)
>
> diff --git a/fs/overlayfs/copy_up.c b/fs/overlayfs/copy_up.c
> index f1b15e5c37d3..cdc4d79a1249 100644
> --- a/fs/overlayfs/copy_up.c
> +++ b/fs/overlayfs/copy_up.c
> @@ -445,18 +445,6 @@ static int ovl_copy_up_inode(struct ovl_copy_up_ctx *c, struct dentry *temp)
>  {
>         int err;
>
> -       if (S_ISREG(c->stat.mode)) {
> -               struct path upperpath;
> -
> -               ovl_path_upper(c->dentry, &upperpath);
> -               BUG_ON(upperpath.dentry != NULL);
> -               upperpath.dentry = temp;
> -
> -               err = ovl_copy_up_data(&c->lowerpath, &upperpath, c->stat.size);
> -               if (err)
> -                       return err;
> -       }
> -
>         err = ovl_copy_xattr(c->lowerpath.dentry, temp);
>         if (err)
>                 return err;
> @@ -480,6 +468,18 @@ static int ovl_copy_up_inode(struct ovl_copy_up_ctx *c, struct dentry *temp)
>                         return err;
>         }
>
> +       if (S_ISREG(c->stat.mode)) {
> +               struct path upperpath;
> +
> +               ovl_path_upper(c->dentry, &upperpath);
> +               BUG_ON(upperpath.dentry != NULL);
> +               upperpath.dentry = temp;
> +
> +               err = ovl_copy_up_data(&c->lowerpath, &upperpath, c->stat.size);
> +               if (err)
> +                       return err;
> +       }
> +

You moved copy_up_data to after ovl_set_attr() -> ovl_set_timestamps()
Does this break the copied up mtime? I'm not sure.
I didn't see that do_splice_direct() or vfs_clone_file_range() change
mtime directly, but inside file system, they might.

>         return 0;
>  }
>
> --
> 2.13.5
>
--
To unsubscribe from this list: send the line "unsubscribe linux-unionfs" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[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