Loading fs/nfs/idmap.c +1 −5 Original line number Diff line number Diff line Loading @@ -84,7 +84,6 @@ struct idmap_hashtable { }; struct idmap { char idmap_path[48]; struct dentry *idmap_dentry; wait_queue_head_t idmap_wq; struct idmap_msg idmap_im; Loading Loading @@ -119,10 +118,7 @@ nfs_idmap_new(struct nfs_client *clp) if ((idmap = kzalloc(sizeof(*idmap), GFP_KERNEL)) == NULL) return -ENOMEM; snprintf(idmap->idmap_path, sizeof(idmap->idmap_path), "%s/idmap", clp->cl_rpcclient->cl_pathname); idmap->idmap_dentry = rpc_mkpipe(idmap->idmap_path, idmap->idmap_dentry = rpc_mkpipe(clp->cl_rpcclient->cl_dentry, "idmap", idmap, &idmap_upcall_ops, 0); if (IS_ERR(idmap->idmap_dentry)) { error = PTR_ERR(idmap->idmap_dentry); Loading include/linux/sunrpc/rpc_pipe_fs.h +1 −1 Original line number Diff line number Diff line Loading @@ -43,7 +43,7 @@ extern int rpc_queue_upcall(struct inode *, struct rpc_pipe_msg *); extern struct dentry *rpc_mkdir(char *, struct rpc_clnt *); extern int rpc_rmdir(struct dentry *); extern struct dentry *rpc_mkpipe(char *, void *, struct rpc_pipe_ops *, int flags); extern struct dentry *rpc_mkpipe(struct dentry *, const char *, void *, struct rpc_pipe_ops *, int flags); extern int rpc_unlink(struct dentry *); extern struct vfsmount *rpc_get_mount(void); extern void rpc_put_mount(void); Loading net/sunrpc/auth_gss/auth_gss.c +2 −5 Original line number Diff line number Diff line Loading @@ -88,7 +88,6 @@ struct gss_auth { struct list_head upcalls; struct rpc_clnt *client; struct dentry *dentry; char path[48]; spinlock_t lock; }; Loading Loading @@ -690,10 +689,8 @@ gss_create(struct rpc_clnt *clnt, rpc_authflavor_t flavor) if (err) goto err_put_mech; snprintf(gss_auth->path, sizeof(gss_auth->path), "%s/%s", clnt->cl_pathname, gss_auth->mech->gm_name); gss_auth->dentry = rpc_mkpipe(gss_auth->path, clnt, &gss_upcall_ops, RPC_PIPE_WAIT_FOR_OPEN); gss_auth->dentry = rpc_mkpipe(clnt->cl_dentry, gss_auth->mech->gm_name, clnt, &gss_upcall_ops, RPC_PIPE_WAIT_FOR_OPEN); if (IS_ERR(gss_auth->dentry)) { err = PTR_ERR(gss_auth->dentry); goto err_put_mech; Loading net/sunrpc/rpc_pipe.c +23 −15 Original line number Diff line number Diff line Loading @@ -621,17 +621,13 @@ __rpc_rmdir(struct inode *dir, struct dentry *dentry) } static struct dentry * rpc_lookup_negative(char *path, struct nameidata *nd) rpc_lookup_create(struct dentry *parent, const char *name, int len) { struct inode *dir = parent->d_inode; struct dentry *dentry; struct inode *dir; int error; if ((error = rpc_lookup_parent(path, nd)) != 0) return ERR_PTR(error); dir = nd->dentry->d_inode; mutex_lock_nested(&dir->i_mutex, I_MUTEX_PARENT); dentry = lookup_one_len(nd->last.name, nd->dentry, nd->last.len); dentry = lookup_one_len(name, parent, len); if (IS_ERR(dentry)) goto out_err; if (dentry->d_inode) { Loading @@ -642,6 +638,19 @@ rpc_lookup_negative(char *path, struct nameidata *nd) return dentry; out_err: mutex_unlock(&dir->i_mutex); return dentry; } static struct dentry * rpc_lookup_negative(char *path, struct nameidata *nd) { struct dentry *dentry; int error; if ((error = rpc_lookup_parent(path, nd)) != 0) return ERR_PTR(error); dentry = rpc_lookup_create(nd->dentry, nd->last.name, nd->last.len); if (IS_ERR(dentry)) rpc_release_path(nd); return dentry; } Loading Loading @@ -701,17 +710,16 @@ rpc_rmdir(struct dentry *dentry) } struct dentry * rpc_mkpipe(char *path, void *private, struct rpc_pipe_ops *ops, int flags) rpc_mkpipe(struct dentry *parent, const char *name, void *private, struct rpc_pipe_ops *ops, int flags) { struct nameidata nd; struct dentry *dentry; struct inode *dir, *inode; struct rpc_inode *rpci; dentry = rpc_lookup_negative(path, &nd); dentry = rpc_lookup_create(parent, name, strlen(name)); if (IS_ERR(dentry)) return dentry; dir = nd.dentry->d_inode; dir = parent->d_inode; inode = rpc_get_inode(dir->i_sb, S_IFSOCK | S_IRUSR | S_IWUSR); if (!inode) goto err_dput; Loading @@ -726,13 +734,13 @@ rpc_mkpipe(char *path, void *private, struct rpc_pipe_ops *ops, int flags) dget(dentry); out: mutex_unlock(&dir->i_mutex); rpc_release_path(&nd); return dentry; err_dput: dput(dentry); dentry = ERR_PTR(-ENOMEM); printk(KERN_WARNING "%s: %s() failed to create pipe %s (errno = %d)\n", __FILE__, __FUNCTION__, path, -ENOMEM); printk(KERN_WARNING "%s: %s() failed to create pipe %s/%s (errno = %d)\n", __FILE__, __FUNCTION__, parent->d_name.name, name, -ENOMEM); goto out; } Loading Loading
fs/nfs/idmap.c +1 −5 Original line number Diff line number Diff line Loading @@ -84,7 +84,6 @@ struct idmap_hashtable { }; struct idmap { char idmap_path[48]; struct dentry *idmap_dentry; wait_queue_head_t idmap_wq; struct idmap_msg idmap_im; Loading Loading @@ -119,10 +118,7 @@ nfs_idmap_new(struct nfs_client *clp) if ((idmap = kzalloc(sizeof(*idmap), GFP_KERNEL)) == NULL) return -ENOMEM; snprintf(idmap->idmap_path, sizeof(idmap->idmap_path), "%s/idmap", clp->cl_rpcclient->cl_pathname); idmap->idmap_dentry = rpc_mkpipe(idmap->idmap_path, idmap->idmap_dentry = rpc_mkpipe(clp->cl_rpcclient->cl_dentry, "idmap", idmap, &idmap_upcall_ops, 0); if (IS_ERR(idmap->idmap_dentry)) { error = PTR_ERR(idmap->idmap_dentry); Loading
include/linux/sunrpc/rpc_pipe_fs.h +1 −1 Original line number Diff line number Diff line Loading @@ -43,7 +43,7 @@ extern int rpc_queue_upcall(struct inode *, struct rpc_pipe_msg *); extern struct dentry *rpc_mkdir(char *, struct rpc_clnt *); extern int rpc_rmdir(struct dentry *); extern struct dentry *rpc_mkpipe(char *, void *, struct rpc_pipe_ops *, int flags); extern struct dentry *rpc_mkpipe(struct dentry *, const char *, void *, struct rpc_pipe_ops *, int flags); extern int rpc_unlink(struct dentry *); extern struct vfsmount *rpc_get_mount(void); extern void rpc_put_mount(void); Loading
net/sunrpc/auth_gss/auth_gss.c +2 −5 Original line number Diff line number Diff line Loading @@ -88,7 +88,6 @@ struct gss_auth { struct list_head upcalls; struct rpc_clnt *client; struct dentry *dentry; char path[48]; spinlock_t lock; }; Loading Loading @@ -690,10 +689,8 @@ gss_create(struct rpc_clnt *clnt, rpc_authflavor_t flavor) if (err) goto err_put_mech; snprintf(gss_auth->path, sizeof(gss_auth->path), "%s/%s", clnt->cl_pathname, gss_auth->mech->gm_name); gss_auth->dentry = rpc_mkpipe(gss_auth->path, clnt, &gss_upcall_ops, RPC_PIPE_WAIT_FOR_OPEN); gss_auth->dentry = rpc_mkpipe(clnt->cl_dentry, gss_auth->mech->gm_name, clnt, &gss_upcall_ops, RPC_PIPE_WAIT_FOR_OPEN); if (IS_ERR(gss_auth->dentry)) { err = PTR_ERR(gss_auth->dentry); goto err_put_mech; Loading
net/sunrpc/rpc_pipe.c +23 −15 Original line number Diff line number Diff line Loading @@ -621,17 +621,13 @@ __rpc_rmdir(struct inode *dir, struct dentry *dentry) } static struct dentry * rpc_lookup_negative(char *path, struct nameidata *nd) rpc_lookup_create(struct dentry *parent, const char *name, int len) { struct inode *dir = parent->d_inode; struct dentry *dentry; struct inode *dir; int error; if ((error = rpc_lookup_parent(path, nd)) != 0) return ERR_PTR(error); dir = nd->dentry->d_inode; mutex_lock_nested(&dir->i_mutex, I_MUTEX_PARENT); dentry = lookup_one_len(nd->last.name, nd->dentry, nd->last.len); dentry = lookup_one_len(name, parent, len); if (IS_ERR(dentry)) goto out_err; if (dentry->d_inode) { Loading @@ -642,6 +638,19 @@ rpc_lookup_negative(char *path, struct nameidata *nd) return dentry; out_err: mutex_unlock(&dir->i_mutex); return dentry; } static struct dentry * rpc_lookup_negative(char *path, struct nameidata *nd) { struct dentry *dentry; int error; if ((error = rpc_lookup_parent(path, nd)) != 0) return ERR_PTR(error); dentry = rpc_lookup_create(nd->dentry, nd->last.name, nd->last.len); if (IS_ERR(dentry)) rpc_release_path(nd); return dentry; } Loading Loading @@ -701,17 +710,16 @@ rpc_rmdir(struct dentry *dentry) } struct dentry * rpc_mkpipe(char *path, void *private, struct rpc_pipe_ops *ops, int flags) rpc_mkpipe(struct dentry *parent, const char *name, void *private, struct rpc_pipe_ops *ops, int flags) { struct nameidata nd; struct dentry *dentry; struct inode *dir, *inode; struct rpc_inode *rpci; dentry = rpc_lookup_negative(path, &nd); dentry = rpc_lookup_create(parent, name, strlen(name)); if (IS_ERR(dentry)) return dentry; dir = nd.dentry->d_inode; dir = parent->d_inode; inode = rpc_get_inode(dir->i_sb, S_IFSOCK | S_IRUSR | S_IWUSR); if (!inode) goto err_dput; Loading @@ -726,13 +734,13 @@ rpc_mkpipe(char *path, void *private, struct rpc_pipe_ops *ops, int flags) dget(dentry); out: mutex_unlock(&dir->i_mutex); rpc_release_path(&nd); return dentry; err_dput: dput(dentry); dentry = ERR_PTR(-ENOMEM); printk(KERN_WARNING "%s: %s() failed to create pipe %s (errno = %d)\n", __FILE__, __FUNCTION__, path, -ENOMEM); printk(KERN_WARNING "%s: %s() failed to create pipe %s/%s (errno = %d)\n", __FILE__, __FUNCTION__, parent->d_name.name, name, -ENOMEM); goto out; } Loading