All of lore.kernel.org
 help / color / mirror / Atom feed
From: Andy Adamson <andros@netapp.com>
To: trond.myklebust@netapp.com
Cc: linux-nfs@vger.kernel.org, Andy Adamson <andros@netapp.com>
Subject: [PATCH_V3 7/7] NFS only set bc_xprt upon success
Date: Mon, 13 Dec 2010 15:19:45 -0500	[thread overview]
Message-ID: <1292271585-3038-8-git-send-email-andros@netapp.com> (raw)
In-Reply-To: <1292271585-3038-7-git-send-email-andros@netapp.com>

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@netapp.com>
---
 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


  reply	other threads:[~2010-12-13 20:20 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-12-13 20:19 [PATCH_V3 0/7] NFSv4 callback find client fix Version 3 Andy Adamson
2010-12-13 20:19 ` [PATCH_V3 1/7] NFS dont free shared socket on backchannel put xprt Andy Adamson
2010-12-13 20:19   ` [PATCH_V3 2/7] NFS implement v4.0 callback_ident Andy Adamson
2010-12-13 20:19     ` [PATCH_V3 3/7] NFS associate sessionid with callback connection Andy Adamson
2010-12-13 20:19       ` [PATCH_V3 4/7] NFS reference nfs_client across cb_compound processing Andy Adamson
2010-12-13 20:19         ` [PATCH_V3 5/7] NFS RPC_AUTH_GSS unsupported on v4.1 back channel Andy Adamson
2010-12-13 20:19           ` [PATCH_V3 6/7] NFS add session back channel draining Andy Adamson
2010-12-13 20:19             ` Andy Adamson [this message]
2010-12-14 18:26       ` [PATCH_V3 3/7] NFS associate sessionid with callback connection J. Bruce Fields
2010-12-14 21:45         ` Andy Adamson
2010-12-14 18:19   ` [PATCH_V3 1/7] NFS dont free shared socket on backchannel put xprt J. Bruce Fields
2010-12-14 21:44     ` Andy Adamson
2010-12-14 21:56       ` J. Bruce Fields
2010-12-14 22:28         ` Andy Adamson
2010-12-14 22:36           ` J. Bruce Fields
2010-12-14 22:40             ` Andy Adamson
2010-12-14 22:47               ` J. Bruce Fields
2010-12-15 20:32                 ` Andy Adamson
2010-12-15 21:54                   ` J. Bruce Fields

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1292271585-3038-8-git-send-email-andros@netapp.com \
    --to=andros@netapp.com \
    --cc=linux-nfs@vger.kernel.org \
    --cc=trond.myklebust@netapp.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.