]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
ovl: change ovl_create_real() to receive dentry parent
authorNeilBrown <neil@brown.name>
Wed, 16 Jul 2025 00:44:31 +0000 (10:44 +1000)
committerChristian Brauner <brauner@kernel.org>
Fri, 18 Jul 2025 09:10:43 +0000 (11:10 +0200)
Instead of passing an inode *dir, pass a dentry *parent.  This makes the
calling slightly cleaner.

Reviewed-by: Amir Goldstein <amir73il@gmail.com>
Signed-off-by: NeilBrown <neil@brown.name>
Link: https://lore.kernel.org/20250716004725.1206467-21-neil@brown.name
Signed-off-by: Christian Brauner <brauner@kernel.org>
fs/overlayfs/dir.c
fs/overlayfs/overlayfs.h
fs/overlayfs/super.c

index 7eb806a4e5f8d4a387a53eb2d9b1297846c1046f..dedf89546e5fae3a25305d8aea52653fc9e3aaf0 100644 (file)
@@ -160,9 +160,10 @@ kill_whiteout:
        goto out;
 }
 
-struct dentry *ovl_create_real(struct ovl_fs *ofs, struct inode *dir,
+struct dentry *ovl_create_real(struct ovl_fs *ofs, struct dentry *parent,
                               struct dentry *newdentry, struct ovl_cattr *attr)
 {
+       struct inode *dir = parent->d_inode;
        int err;
 
        if (IS_ERR(newdentry))
@@ -223,7 +224,7 @@ struct dentry *ovl_create_temp(struct ovl_fs *ofs, struct dentry *workdir,
 {
        struct dentry *ret;
        inode_lock(workdir->d_inode);
-       ret = ovl_create_real(ofs, d_inode(workdir),
+       ret = ovl_create_real(ofs, workdir,
                              ovl_lookup_temp(ofs, workdir), attr);
        inode_unlock(workdir->d_inode);
        return ret;
@@ -329,7 +330,7 @@ static int ovl_create_upper(struct dentry *dentry, struct inode *inode,
        int err;
 
        inode_lock_nested(udir, I_MUTEX_PARENT);
-       newdentry = ovl_create_real(ofs, udir,
+       newdentry = ovl_create_real(ofs, upperdir,
                                    ovl_lookup_upper(ofs, dentry->d_name.name,
                                                     upperdir, dentry->d_name.len),
                                    attr);
index df674a12f498afadb82dcfc62eac6396f734c6a5..4aec0d7aa2dd1ed3948b4ac16cbf4c7b5a33917c 100644 (file)
@@ -859,7 +859,7 @@ struct ovl_cattr {
 #define OVL_CATTR(m) (&(struct ovl_cattr) { .mode = (m) })
 
 struct dentry *ovl_create_real(struct ovl_fs *ofs,
-                              struct inode *dir, struct dentry *newdentry,
+                              struct dentry *parent, struct dentry *newdentry,
                               struct ovl_cattr *attr);
 int ovl_cleanup(struct ovl_fs *ofs, struct inode *dir, struct dentry *dentry);
 int ovl_cleanup_unlocked(struct ovl_fs *ofs, struct dentry *workdir, struct dentry *dentry);
index 0d765aa66bd2a4753348e0f77f92ed42f7943996..9fd0b3acd1a4d6308a46951e96a19a50dc43ba3c 100644 (file)
@@ -622,8 +622,7 @@ static struct dentry *ovl_lookup_or_create(struct ovl_fs *ofs,
        inode_lock_nested(parent->d_inode, I_MUTEX_PARENT);
        child = ovl_lookup_upper(ofs, name, parent, len);
        if (!IS_ERR(child) && !child->d_inode)
-               child = ovl_create_real(ofs, parent->d_inode, child,
-                                       OVL_CATTR(mode));
+               child = ovl_create_real(ofs, parent, child, OVL_CATTR(mode));
        inode_unlock(parent->d_inode);
        dput(parent);