Avoid a double svc_sock_destroy. nfs41_callback_up destroys the bc_xprt upon failure. nfs_callback_up calls svc_destroy on failure which also calls svc_sock_destroy on the bc_xprt. Signed-off-by: Andy Adamson <andros@xxxxxxxxxx> --- fs/nfs/callback.c | 3 ++- 1 files changed, 2 insertions(+), 1 deletions(-) diff --git a/fs/nfs/callback.c b/fs/nfs/callback.c index dc2ead1..8129511 100644 --- a/fs/nfs/callback.c +++ b/fs/nfs/callback.c @@ -215,7 +215,6 @@ nfs41_callback_up(struct svc_serv *serv, struct rpc_xprt *xprt) * Save the svc_serv in the transport so that it can * be referenced when the session backchannel is initialized */ - serv->bc_xprt = bc_xprt; xprt->bc_serv = serv; /* socket is shared with the fore channel */ @@ -227,6 +226,8 @@ nfs41_callback_up(struct svc_serv *serv, struct rpc_xprt *xprt) rqstp = svc_prepare_thread(serv, &serv->sv_pools[0]); if (IS_ERR(rqstp)) svc_sock_destroy(bc_xprt); + else + serv->bc_xprt = bc_xprt; out: dprintk("--> %s return %p\n", __func__, rqstp); return rqstp; -- 1.6.6 -- To unsubscribe from this list: send the line "unsubscribe linux-nfs" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html