Commit 2dc92e59 authored by Eric Van Hensbergen's avatar Eric Van Hensbergen

fs/9p: Eliminate redundant non-cache path in mknod

Like symlink, mknod had a seperate path with different inode
allocation -- but this seems unnecessary, so eliminating this path.
Signed-off-by: default avatarEric Van Hensbergen <ericvh@kernel.org>
parent 6bb29327
...@@ -840,33 +840,17 @@ v9fs_vfs_mknod_dotl(struct mnt_idmap *idmap, struct inode *dir, ...@@ -840,33 +840,17 @@ v9fs_vfs_mknod_dotl(struct mnt_idmap *idmap, struct inode *dir,
err); err);
goto error; goto error;
} }
inode = v9fs_get_new_inode_from_fid(v9ses, fid, dir->i_sb);
/* instantiate inode and assign the unopened fid to the dentry */ if (IS_ERR(inode)) {
if (v9ses->cache & (CACHE_META|CACHE_LOOSE)) { err = PTR_ERR(inode);
inode = v9fs_get_new_inode_from_fid(v9ses, fid, dir->i_sb); p9_debug(P9_DEBUG_VFS, "inode creation failed %d\n",
if (IS_ERR(inode)) { err);
err = PTR_ERR(inode); goto error;
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);
} }
v9fs_set_create_acl(inode, fid, dacl, pacl);
v9fs_fid_add(dentry, &fid);
d_instantiate(dentry, inode);
err = 0;
error: error:
p9_fid_put(fid); p9_fid_put(fid);
v9fs_put_acl(dacl, pacl); v9fs_put_acl(dacl, pacl);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment