fs/9p: convert mkdir to use get_new_inode
authorEric Van Hensbergen <ericvh@kernel.org>
Fri, 5 Jan 2024 16:52:02 +0000 (16:52 +0000)
committerEric Van Hensbergen <ericvh@kernel.org>
Fri, 26 Jan 2024 16:46:55 +0000 (16:46 +0000)
mkdir had different code paths for inode creation, cache used
the get_new_inode_from_fid helper, but non-cached used
v9fs_get_inode.  Collapsed into a single implementation across
both as there should be no difference.

Signed-off-by: Eric Van Hensbergen <ericvh@kernel.org>
fs/9p/vfs_inode_dotl.c

index 3505227e170402be03b2df40ff8f3ba2994a07d2..c9e67d7334e392f802b64c1db4aab24f79472715 100644 (file)
@@ -402,32 +402,17 @@ static int v9fs_vfs_mkdir_dotl(struct mnt_idmap *idmap,
        }
 
        /* instantiate inode and assign the unopened fid to the dentry */
-       if (v9ses->cache & (CACHE_META|CACHE_LOOSE)) {
-               inode = v9fs_get_new_inode_from_fid(v9ses, fid, dir->i_sb);
-               if (IS_ERR(inode)) {
-                       err = PTR_ERR(inode);
-                       p9_debug(P9_DEBUG_VFS, "inode creation failed %d\n",
-                                err);
-                       goto error;
-               }
-               v9fs_fid_add(dentry, &fid);
-               v9fs_set_create_acl(inode, fid, dacl, pacl);
-               d_instantiate(dentry, inode);
-               err = 0;
-       } else {
-               /*
-                * Not in cached mode. No need to populate
-                * inode with stat. We need to get an inode
-                * so that we can set the acl with dentry
-                */
-               inode = v9fs_get_inode(dir->i_sb, mode, 0);
-               if (IS_ERR(inode)) {
-                       err = PTR_ERR(inode);
-                       goto error;
-               }
-               v9fs_set_create_acl(inode, fid, dacl, pacl);
-               d_instantiate(dentry, inode);
+       inode = v9fs_get_new_inode_from_fid(v9ses, fid, dir->i_sb);
+       if (IS_ERR(inode)) {
+               err = PTR_ERR(inode);
+               p9_debug(P9_DEBUG_VFS, "inode creation failed %d\n",
+                        err);
+               goto error;
        }
+       v9fs_fid_add(dentry, &fid);
+       v9fs_set_create_acl(inode, fid, dacl, pacl);
+       d_instantiate(dentry, inode);
+       err = 0;
        inc_nlink(dir);
        v9fs_invalidate_inode_attr(dir);
 error: