From: NeilBrown <[email protected]> Now ovl_start_creating_temp() is passed a buffer in which to store the temp name. This will be useful in a future patch were ovl_create_real() will need access to that name.
Signed-off-by: NeilBrown <[email protected]> --- fs/overlayfs/dir.c | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/fs/overlayfs/dir.c b/fs/overlayfs/dir.c index ff3dbd1ca61f..c4feb89ad1e3 100644 --- a/fs/overlayfs/dir.c +++ b/fs/overlayfs/dir.c @@ -66,10 +66,9 @@ void ovl_tempname(char name[OVL_TEMPNAME_SIZE]) } static struct dentry *ovl_start_creating_temp(struct ovl_fs *ofs, - struct dentry *workdir) + struct dentry *workdir, + char name[OVL_TEMPNAME_SIZE]) { - char name[OVL_TEMPNAME_SIZE]; - ovl_tempname(name); return start_creating(ovl_upper_mnt_idmap(ofs), workdir, &QSTR(name)); @@ -81,11 +80,12 @@ static struct dentry *ovl_whiteout(struct ovl_fs *ofs) struct dentry *whiteout, *link; struct dentry *workdir = ofs->workdir; struct inode *wdir = workdir->d_inode; + char name[OVL_TEMPNAME_SIZE]; guard(mutex)(&ofs->whiteout_lock); if (!ofs->whiteout) { - whiteout = ovl_start_creating_temp(ofs, workdir); + whiteout = ovl_start_creating_temp(ofs, workdir, name); if (IS_ERR(whiteout)) return whiteout; err = ovl_do_whiteout(ofs, wdir, whiteout); @@ -97,7 +97,7 @@ static struct dentry *ovl_whiteout(struct ovl_fs *ofs) } if (!ofs->no_shared_whiteout) { - link = ovl_start_creating_temp(ofs, workdir); + link = ovl_start_creating_temp(ofs, workdir, name); if (IS_ERR(link)) return link; err = ovl_do_link(ofs, ofs->whiteout, wdir, link); @@ -247,7 +247,9 @@ struct dentry *ovl_create_temp(struct ovl_fs *ofs, struct dentry *workdir, struct ovl_cattr *attr) { struct dentry *ret; - ret = ovl_start_creating_temp(ofs, workdir); + char name[OVL_TEMPNAME_SIZE]; + + ret = ovl_start_creating_temp(ofs, workdir, name); if (IS_ERR(ret)) return ret; ret = ovl_create_real(ofs, workdir, ret, attr); -- 2.50.0.107.gf914562f5916.dirty
