]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
ovl: pass name buffer to ovl_start_creating_temp()
authorNeilBrown <neil@brown.name>
Tue, 24 Feb 2026 22:16:56 +0000 (09:16 +1100)
committerChristian Brauner <brauner@kernel.org>
Mon, 9 Mar 2026 08:43:03 +0000 (09:43 +0100)
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.

Reviewed-by: Amir Goldstein <amir73il@gmail.com>
Signed-off-by: NeilBrown <neil@brown.name>
Link: https://patch.msgid.link/20260224222542.3458677-12-neilb@ownmail.net
Signed-off-by: Christian Brauner <brauner@kernel.org>
fs/overlayfs/dir.c

index ff3dbd1ca61f280d1495bb52182a2da9a6b28119..c4feb89ad1e3922eed3b5f42d7557c226a61b5dc 100644 (file)
@@ -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);