fs/9p: Eliminate redundant non-cache path in mknod
authorEric Van Hensbergen <ericvh@kernel.org>
Fri, 5 Jan 2024 17:17:35 +0000 (17:17 +0000)
committerEric Van Hensbergen <ericvh@kernel.org>
Fri, 26 Jan 2024 16:46:56 +0000 (16:46 +0000)
Like symlink, mknod had a seperate path with different inode
allocation -- but this seems unnecessary, so eliminating this path.

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

index 4a8606e3b0f94d9d53bbcfcf7614613443980428..f56b17b69aca7eed209c39b258fc183eec263cb0 100644 (file)
@@ -840,33 +840,17 @@ v9fs_vfs_mknod_dotl(struct mnt_idmap *idmap, struct inode *dir,
                         err);
                goto error;
        }
-
-       /* 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_set_create_acl(inode, fid, dacl, pacl);
-               v9fs_fid_add(dentry, &fid);
-               d_instantiate(dentry, inode);
-               err = 0;
-       } else {
-               /*
-                * Not in cached mode. No need to populate inode with stat.
-                * socket syscall returns a fd, so we need instantiate
-                */
-               inode = v9fs_get_inode(dir->i_sb, mode, rdev);
-               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_set_create_acl(inode, fid, dacl, pacl);
+       v9fs_fid_add(dentry, &fid);
+       d_instantiate(dentry, inode);
+       err = 0;
 error:
        p9_fid_put(fid);
        v9fs_put_acl(dacl, pacl);