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:
Родитель
d0fe13ba91
Коммит
d706ed1f50
|
@ -146,7 +146,7 @@ nfs4_blk_decode_device(struct nfs_server *server,
|
|||
|
||||
dprintk("%s CALLING USERSPACE DAEMON\n", __func__);
|
||||
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) {
|
||||
remove_wait_queue(&bl_wq, &wq);
|
||||
rv = ERR_PTR(rc);
|
||||
|
|
|
@ -66,7 +66,7 @@ static void dev_remove(dev_t dev)
|
|||
msg.len = sizeof(bl_msg) + bl_msg.totallen;
|
||||
|
||||
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);
|
||||
goto out;
|
||||
}
|
||||
|
|
|
@ -589,7 +589,7 @@ nfs_idmap_id(struct idmap *idmap, struct idmap_hashtable *h,
|
|||
msg.len = sizeof(*im);
|
||||
|
||||
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);
|
||||
goto out;
|
||||
}
|
||||
|
@ -650,7 +650,7 @@ nfs_idmap_name(struct idmap *idmap, struct idmap_hashtable *h,
|
|||
|
||||
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);
|
||||
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 *,
|
||||
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;
|
||||
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;
|
||||
gss_msg = gss_add_msg(gss_new);
|
||||
if (gss_msg == gss_new) {
|
||||
struct inode *inode = &gss_new->inode->vfs_inode;
|
||||
int res = rpc_queue_upcall(inode, &gss_new->msg);
|
||||
int res = rpc_queue_upcall(gss_new->inode->pipe, &gss_new->msg);
|
||||
if (res) {
|
||||
gss_unhash_msg(gss_new);
|
||||
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.
|
||||
*/
|
||||
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;
|
||||
|
||||
spin_lock(&pipe->lock);
|
||||
|
|
Загрузка…
Ссылка в новой задаче