diff options
author | Amir Goldstein <amir73il@gmail.com> | 2018-05-16 17:51:25 +0300 |
---|---|---|
committer | Miklos Szeredi <mszeredi@redhat.com> | 2018-05-31 12:06:11 +0300 |
commit | 137ec526a20c4e4d21d658a6581b471d39860911 (patch) | |
tree | d5f40d9bd01269482d6e2cddd50ac384673f040d /fs/overlayfs/copy_up.c | |
parent | 95a1c8153ad8bc99e7c4b90257f20b4f0474a9a0 (diff) | |
download | linux-137ec526a20c4e4d21d658a6581b471d39860911.tar.xz |
ovl: create helper ovl_create_temp()
Also used ovl_create_temp() in ovl_create_index() instead of calling
ovl_do_mkdir() directly, so now all callers of ovl_do_mkdir() are routed
through ovl_create_real(), which paves the way for Al's fix for non-hashed
result from vfs_mkdir().
Signed-off-by: Amir Goldstein <amir73il@gmail.com>
Signed-off-by: Miklos Szeredi <mszeredi@redhat.com>
Diffstat (limited to 'fs/overlayfs/copy_up.c')
-rw-r--r-- | fs/overlayfs/copy_up.c | 14 |
1 files changed, 4 insertions, 10 deletions
diff --git a/fs/overlayfs/copy_up.c b/fs/overlayfs/copy_up.c index d3e9c1eeb7a4..1b442c14c531 100644 --- a/fs/overlayfs/copy_up.c +++ b/fs/overlayfs/copy_up.c @@ -365,14 +365,10 @@ static int ovl_create_index(struct dentry *dentry, struct dentry *origin, if (err) return err; - temp = ovl_lookup_temp(indexdir); + temp = ovl_create_temp(indexdir, OVL_CATTR(S_IFDIR | 0)); if (IS_ERR(temp)) goto temp_err; - err = ovl_do_mkdir(dir, temp, S_IFDIR); - if (err) - goto out; - err = ovl_set_upper_fh(upper, temp); if (err) goto out_cleanup; @@ -500,12 +496,10 @@ static int ovl_get_tmpfile(struct ovl_copy_up_ctx *c, struct dentry **tempp) if (new_creds) old_creds = override_creds(new_creds); - if (c->tmpfile) { + if (c->tmpfile) temp = ovl_do_tmpfile(c->workdir, c->stat.mode); - } else { - temp = ovl_create_real(d_inode(c->workdir), - ovl_lookup_temp(c->workdir), &cattr); - } + else + temp = ovl_create_temp(c->workdir, &cattr); if (IS_ERR(temp)) goto temp_err; err = 0; |