9p: new helper - v9fs_parent_fid()
authorAl Viro <viro@zeniv.linux.org.uk>
Sun, 29 May 2016 19:29:26 +0000 (15:29 -0400)
committerAl Viro <viro@zeniv.linux.org.uk>
Sun, 29 May 2016 20:22:09 +0000 (16:22 -0400)
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
fs/9p/fid.h
fs/9p/vfs_inode.c
fs/9p/vfs_inode_dotl.c

index 2b6787fcb6261dd2f64bcd765f76660472d28347..12700df0bb513c53290baef5ae9eb5aa6cb0abfd 100644 (file)
 #include <linux/list.h>
 
 struct p9_fid *v9fs_fid_lookup(struct dentry *dentry);
+static inline struct p9_fid *v9fs_parent_fid(struct dentry *dentry)
+{
+       return v9fs_fid_lookup(dentry->d_parent);
+}
 struct p9_fid *v9fs_fid_clone(struct dentry *dentry);
 void v9fs_fid_add(struct dentry *dentry, struct p9_fid *fid);
 struct p9_fid *v9fs_writeback_fid(struct dentry *dentry);
index f4645c51526290e0d22a1e2589dbe21bf8e7148b..cca44862f2cf6c0566edb6adbfd8eedc4bda0c6e 100644 (file)
@@ -595,7 +595,7 @@ static int v9fs_remove(struct inode *dir, struct dentry *dentry, int flags)
 
        v9ses = v9fs_inode2v9ses(dir);
        inode = d_inode(dentry);
-       dfid = v9fs_fid_lookup(dentry->d_parent);
+       dfid = v9fs_parent_fid(dentry);
        if (IS_ERR(dfid)) {
                retval = PTR_ERR(dfid);
                p9_debug(P9_DEBUG_VFS, "fid lookup failed %d\n", retval);
@@ -653,7 +653,7 @@ v9fs_create(struct v9fs_session_info *v9ses, struct inode *dir,
        ofid = NULL;
        fid = NULL;
        name = (char *) dentry->d_name.name;
-       dfid = v9fs_fid_lookup(dentry->d_parent);
+       dfid = v9fs_parent_fid(dentry);
        if (IS_ERR(dfid)) {
                err = PTR_ERR(dfid);
                p9_debug(P9_DEBUG_VFS, "fid lookup failed %d\n", err);
@@ -798,7 +798,7 @@ struct dentry *v9fs_vfs_lookup(struct inode *dir, struct dentry *dentry,
 
        v9ses = v9fs_inode2v9ses(dir);
        /* We can walk d_parent because we hold the dir->i_mutex */
-       dfid = v9fs_fid_lookup(dentry->d_parent);
+       dfid = v9fs_parent_fid(dentry);
        if (IS_ERR(dfid))
                return ERR_CAST(dfid);
 
@@ -975,13 +975,13 @@ v9fs_vfs_rename(struct inode *old_dir, struct dentry *old_dentry,
        if (IS_ERR(oldfid))
                return PTR_ERR(oldfid);
 
-       olddirfid = v9fs_fid_clone(old_dentry->d_parent);
+       olddirfid = v9fs_parent_fid(old_dentry);
        if (IS_ERR(olddirfid)) {
                retval = PTR_ERR(olddirfid);
                goto done;
        }
 
-       newdirfid = v9fs_fid_clone(new_dentry->d_parent);
+       newdirfid = v9fs_parent_fid(new_dentry);
        if (IS_ERR(newdirfid)) {
                retval = PTR_ERR(newdirfid);
                goto clunk_olddir;
index a34702c998f593f60515d72fcf093cd556f5d951..7432e1615311060d111b66cf85073bd5f3bb770f 100644 (file)
@@ -273,7 +273,7 @@ v9fs_vfs_atomic_open_dotl(struct inode *dir, struct dentry *dentry,
        p9_debug(P9_DEBUG_VFS, "name:%s flags:0x%x mode:0x%hx\n",
                 name, flags, omode);
 
-       dfid = v9fs_fid_lookup(dentry->d_parent);
+       dfid = v9fs_parent_fid(dentry);
        if (IS_ERR(dfid)) {
                err = PTR_ERR(dfid);
                p9_debug(P9_DEBUG_VFS, "fid lookup failed %d\n", err);
@@ -389,7 +389,6 @@ static int v9fs_vfs_mkdir_dotl(struct inode *dir,
        umode_t mode;
        struct inode *inode;
        struct p9_qid qid;
-       struct dentry *dir_dentry;
        struct posix_acl *dacl = NULL, *pacl = NULL;
 
        p9_debug(P9_DEBUG_VFS, "name %pd\n", dentry);
@@ -400,8 +399,7 @@ static int v9fs_vfs_mkdir_dotl(struct inode *dir,
        if (dir->i_mode & S_ISGID)
                omode |= S_ISGID;
 
-       dir_dentry = dentry->d_parent;
-       dfid = v9fs_fid_lookup(dir_dentry);
+       dfid = v9fs_parent_fid(dentry);
        if (IS_ERR(dfid)) {
                err = PTR_ERR(dfid);
                p9_debug(P9_DEBUG_VFS, "fid lookup failed %d\n", err);
@@ -691,7 +689,7 @@ v9fs_vfs_symlink_dotl(struct inode *dir, struct dentry *dentry,
        p9_debug(P9_DEBUG_VFS, "%lu,%s,%s\n", dir->i_ino, name, symname);
        v9ses = v9fs_inode2v9ses(dir);
 
-       dfid = v9fs_fid_lookup(dentry->d_parent);
+       dfid = v9fs_parent_fid(dentry);
        if (IS_ERR(dfid)) {
                err = PTR_ERR(dfid);
                p9_debug(P9_DEBUG_VFS, "fid lookup failed %d\n", err);
@@ -762,7 +760,6 @@ v9fs_vfs_link_dotl(struct dentry *old_dentry, struct inode *dir,
                struct dentry *dentry)
 {
        int err;
-       struct dentry *dir_dentry;
        struct p9_fid *dfid, *oldfid;
        struct v9fs_session_info *v9ses;
 
@@ -770,8 +767,7 @@ v9fs_vfs_link_dotl(struct dentry *old_dentry, struct inode *dir,
                 dir->i_ino, old_dentry, dentry);
 
        v9ses = v9fs_inode2v9ses(dir);
-       dir_dentry = dentry->d_parent;
-       dfid = v9fs_fid_lookup(dir_dentry);
+       dfid = v9fs_parent_fid(dentry);
        if (IS_ERR(dfid))
                return PTR_ERR(dfid);
 
@@ -822,7 +818,6 @@ v9fs_vfs_mknod_dotl(struct inode *dir, struct dentry *dentry, umode_t omode,
        struct p9_fid *fid = NULL, *dfid = NULL;
        struct inode *inode;
        struct p9_qid qid;
-       struct dentry *dir_dentry;
        struct posix_acl *dacl = NULL, *pacl = NULL;
 
        p9_debug(P9_DEBUG_VFS, " %lu,%pd mode: %hx MAJOR: %u MINOR: %u\n",
@@ -830,8 +825,7 @@ v9fs_vfs_mknod_dotl(struct inode *dir, struct dentry *dentry, umode_t omode,
                 MAJOR(rdev), MINOR(rdev));
 
        v9ses = v9fs_inode2v9ses(dir);
-       dir_dentry = dentry->d_parent;
-       dfid = v9fs_fid_lookup(dir_dentry);
+       dfid = v9fs_parent_fid(dentry);
        if (IS_ERR(dfid)) {
                err = PTR_ERR(dfid);
                p9_debug(P9_DEBUG_VFS, "fid lookup failed %d\n", err);