mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2025-01-23 06:14:42 +08:00
SUNPRC: cleanup RPC PipeFS pipes upcall interface
RPC pipe upcall doesn't requires only private pipe data. Thus RPC inode references in this code can be removed. Signed-off-by: Stanislav Kinsbursky <skinsbursky@parallels.com> Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
This commit is contained in:
parent
d0fe13ba91
commit
d706ed1f50
@ -146,7 +146,7 @@ nfs4_blk_decode_device(struct nfs_server *server,
|
|||||||
|
|
||||||
dprintk("%s CALLING USERSPACE DAEMON\n", __func__);
|
dprintk("%s CALLING USERSPACE DAEMON\n", __func__);
|
||||||
add_wait_queue(&bl_wq, &wq);
|
add_wait_queue(&bl_wq, &wq);
|
||||||
rc = rpc_queue_upcall(bl_device_pipe->d_inode, &msg);
|
rc = rpc_queue_upcall(RPC_I(bl_device_pipe->d_inode)->pipe, &msg);
|
||||||
if (rc < 0) {
|
if (rc < 0) {
|
||||||
remove_wait_queue(&bl_wq, &wq);
|
remove_wait_queue(&bl_wq, &wq);
|
||||||
rv = ERR_PTR(rc);
|
rv = ERR_PTR(rc);
|
||||||
|
@ -66,7 +66,7 @@ static void dev_remove(dev_t dev)
|
|||||||
msg.len = sizeof(bl_msg) + bl_msg.totallen;
|
msg.len = sizeof(bl_msg) + bl_msg.totallen;
|
||||||
|
|
||||||
add_wait_queue(&bl_wq, &wq);
|
add_wait_queue(&bl_wq, &wq);
|
||||||
if (rpc_queue_upcall(bl_device_pipe->d_inode, &msg) < 0) {
|
if (rpc_queue_upcall(RPC_I(bl_device_pipe->d_inode)->pipe, &msg) < 0) {
|
||||||
remove_wait_queue(&bl_wq, &wq);
|
remove_wait_queue(&bl_wq, &wq);
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
@ -589,7 +589,7 @@ nfs_idmap_id(struct idmap *idmap, struct idmap_hashtable *h,
|
|||||||
msg.len = sizeof(*im);
|
msg.len = sizeof(*im);
|
||||||
|
|
||||||
add_wait_queue(&idmap->idmap_wq, &wq);
|
add_wait_queue(&idmap->idmap_wq, &wq);
|
||||||
if (rpc_queue_upcall(idmap->idmap_dentry->d_inode, &msg) < 0) {
|
if (rpc_queue_upcall(RPC_I(idmap->idmap_dentry->d_inode)->pipe, &msg) < 0) {
|
||||||
remove_wait_queue(&idmap->idmap_wq, &wq);
|
remove_wait_queue(&idmap->idmap_wq, &wq);
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
@ -650,7 +650,7 @@ nfs_idmap_name(struct idmap *idmap, struct idmap_hashtable *h,
|
|||||||
|
|
||||||
add_wait_queue(&idmap->idmap_wq, &wq);
|
add_wait_queue(&idmap->idmap_wq, &wq);
|
||||||
|
|
||||||
if (rpc_queue_upcall(idmap->idmap_dentry->d_inode, &msg) < 0) {
|
if (rpc_queue_upcall(RPC_I(idmap->idmap_dentry->d_inode)->pipe, &msg) < 0) {
|
||||||
remove_wait_queue(&idmap->idmap_wq, &wq);
|
remove_wait_queue(&idmap->idmap_wq, &wq);
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
@ -64,7 +64,7 @@ extern void rpc_put_sb_net(const struct net *net);
|
|||||||
|
|
||||||
extern ssize_t rpc_pipe_generic_upcall(struct file *, struct rpc_pipe_msg *,
|
extern ssize_t rpc_pipe_generic_upcall(struct file *, struct rpc_pipe_msg *,
|
||||||
char __user *, size_t);
|
char __user *, size_t);
|
||||||
extern int rpc_queue_upcall(struct inode *, struct rpc_pipe_msg *);
|
extern int rpc_queue_upcall(struct rpc_pipe *, struct rpc_pipe_msg *);
|
||||||
|
|
||||||
struct rpc_clnt;
|
struct rpc_clnt;
|
||||||
extern struct dentry *rpc_create_client_dir(struct dentry *, struct qstr *, struct rpc_clnt *);
|
extern struct dentry *rpc_create_client_dir(struct dentry *, struct qstr *, struct rpc_clnt *);
|
||||||
|
@ -473,8 +473,7 @@ gss_setup_upcall(struct rpc_clnt *clnt, struct gss_auth *gss_auth, struct rpc_cr
|
|||||||
return gss_new;
|
return gss_new;
|
||||||
gss_msg = gss_add_msg(gss_new);
|
gss_msg = gss_add_msg(gss_new);
|
||||||
if (gss_msg == gss_new) {
|
if (gss_msg == gss_new) {
|
||||||
struct inode *inode = &gss_new->inode->vfs_inode;
|
int res = rpc_queue_upcall(gss_new->inode->pipe, &gss_new->msg);
|
||||||
int res = rpc_queue_upcall(inode, &gss_new->msg);
|
|
||||||
if (res) {
|
if (res) {
|
||||||
gss_unhash_msg(gss_new);
|
gss_unhash_msg(gss_new);
|
||||||
gss_msg = ERR_PTR(res);
|
gss_msg = ERR_PTR(res);
|
||||||
|
@ -130,9 +130,8 @@ EXPORT_SYMBOL_GPL(rpc_pipe_generic_upcall);
|
|||||||
* initialize the fields of @msg (other than @msg->list) appropriately.
|
* initialize the fields of @msg (other than @msg->list) appropriately.
|
||||||
*/
|
*/
|
||||||
int
|
int
|
||||||
rpc_queue_upcall(struct inode *inode, struct rpc_pipe_msg *msg)
|
rpc_queue_upcall(struct rpc_pipe *pipe, struct rpc_pipe_msg *msg)
|
||||||
{
|
{
|
||||||
struct rpc_pipe *pipe = RPC_I(inode)->pipe;
|
|
||||||
int res = -EPIPE;
|
int res = -EPIPE;
|
||||||
|
|
||||||
spin_lock(&pipe->lock);
|
spin_lock(&pipe->lock);
|
||||||
|
Loading…
Reference in New Issue
Block a user