rpc: move sk_bc_xprt to svc_xprt
This seems obviously transport-level information even if it's currently used only by the server socket code. Signed-off-by: J. Bruce Fields <bfields@redhat.com>
This commit is contained in:
parent
dcbeaa68db
commit
d75faea330
4 changed files with 8 additions and 6 deletions
|
@ -79,6 +79,7 @@ struct svc_xprt {
|
||||||
struct list_head xpt_users; /* callbacks on free */
|
struct list_head xpt_users; /* callbacks on free */
|
||||||
|
|
||||||
struct net *xpt_net;
|
struct net *xpt_net;
|
||||||
|
struct rpc_xprt *xpt_bc_xprt; /* NFSv4.1 backchannel */
|
||||||
};
|
};
|
||||||
|
|
||||||
static inline void unregister_xpt_user(struct svc_xprt *xpt, struct svc_xpt_user *u)
|
static inline void unregister_xpt_user(struct svc_xprt *xpt, struct svc_xpt_user *u)
|
||||||
|
|
|
@ -28,7 +28,6 @@ struct svc_sock {
|
||||||
/* private TCP part */
|
/* private TCP part */
|
||||||
u32 sk_reclen; /* length of record */
|
u32 sk_reclen; /* length of record */
|
||||||
u32 sk_tcplen; /* current read length */
|
u32 sk_tcplen; /* current read length */
|
||||||
struct rpc_xprt *sk_bc_xprt; /* NFSv4.1 backchannel xprt */
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
|
@ -987,15 +987,17 @@ static int svc_process_calldir(struct svc_sock *svsk, struct svc_rqst *rqstp,
|
||||||
vec[0] = rqstp->rq_arg.head[0];
|
vec[0] = rqstp->rq_arg.head[0];
|
||||||
} else {
|
} else {
|
||||||
/* REPLY */
|
/* REPLY */
|
||||||
if (svsk->sk_bc_xprt)
|
struct rpc_xprt *bc_xprt = svsk->sk_xprt.xpt_bc_xprt;
|
||||||
req = xprt_lookup_rqst(svsk->sk_bc_xprt, xid);
|
|
||||||
|
if (bc_xprt)
|
||||||
|
req = xprt_lookup_rqst(bc_xprt, xid);
|
||||||
|
|
||||||
if (!req) {
|
if (!req) {
|
||||||
printk(KERN_NOTICE
|
printk(KERN_NOTICE
|
||||||
"%s: Got unrecognized reply: "
|
"%s: Got unrecognized reply: "
|
||||||
"calldir 0x%x sk_bc_xprt %p xid %08x\n",
|
"calldir 0x%x xpt_bc_xprt %p xid %08x\n",
|
||||||
__func__, ntohl(calldir),
|
__func__, ntohl(calldir),
|
||||||
svsk->sk_bc_xprt, xid);
|
bc_xprt, xid);
|
||||||
vec[0] = rqstp->rq_arg.head[0];
|
vec[0] = rqstp->rq_arg.head[0];
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
|
|
@ -2379,9 +2379,9 @@ static struct rpc_xprt *xs_setup_bc_tcp(struct xprt_create *args)
|
||||||
* The backchannel uses the same socket connection as the
|
* The backchannel uses the same socket connection as the
|
||||||
* forechannel
|
* forechannel
|
||||||
*/
|
*/
|
||||||
|
args->bc_xprt->xpt_bc_xprt = xprt;
|
||||||
xprt->bc_xprt = args->bc_xprt;
|
xprt->bc_xprt = args->bc_xprt;
|
||||||
bc_sock = container_of(args->bc_xprt, struct svc_sock, sk_xprt);
|
bc_sock = container_of(args->bc_xprt, struct svc_sock, sk_xprt);
|
||||||
bc_sock->sk_bc_xprt = xprt;
|
|
||||||
transport->sock = bc_sock->sk_sock;
|
transport->sock = bc_sock->sk_sock;
|
||||||
transport->inet = bc_sock->sk_sk;
|
transport->inet = bc_sock->sk_sk;
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue