Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 23 Mar 2017 02:20:47 +0000
From:      Rick Macklem <rmacklem@uoguelph.ca>
To:        Larry Rosenman <ler@lerctr.org>, "freebsd-fs@freebsd.org" <freebsd-fs@freebsd.org>
Cc:        "freebsd-current@FreeBSD.org" <freebsd-current@FreeBSD.org>
Subject:   Re: crash: umount_nfs: Current
Message-ID:  <YTXPR01MB01890E5CFDB2C827F50B0991DD3F0@YTXPR01MB0189.CANPRD01.PROD.OUTLOOK.COM>
In-Reply-To: <A5DCCD5C-F6DE-4C54-A9A6-2A3729808E67@lerctr.org>
References:  <20170316024433.qiujcewz5bclbgq5@borg.lerctr.org> <YTXPR01MB0189ABA592F02FBB9FFC2C9DDD260@YTXPR01MB0189.CANPRD01.PROD.OUTLOOK.COM>, <A5DCCD5C-F6DE-4C54-A9A6-2A3729808E67@lerctr.org>

next in thread | previous in thread | raw e-mail | index | archive | help

[-- Attachment #1 --]
Larry Rosenman wrote:

> Err, I’m at  r315289….
I think the attached patch (only very lightly tested by me) will fix this crash.
If you have an easy way to test it, that would be appreciated, rick


[-- Attachment #2 --]
--- rpc/clnt_vc.c.sav	2017-01-17 22:57:42.138138000 -0500
+++ rpc/clnt_vc.c	2017-03-22 21:30:12.940925000 -0400
@@ -790,7 +790,7 @@ clnt_vc_destroy(CLIENT *cl)
 		sx_xlock(&xprt->xp_lock);
 		mtx_lock(&ct->ct_lock);
 		xprt->xp_p2 = NULL;
-		xprt_unregister(xprt);
+		sx_xunlock(&xprt->xp_lock);
 	}
 
 	if (ct->ct_socket) {
@@ -800,10 +800,6 @@ clnt_vc_destroy(CLIENT *cl)
 	}
 
 	mtx_unlock(&ct->ct_lock);
-	if (xprt != NULL) {
-		sx_xunlock(&xprt->xp_lock);
-		SVC_RELEASE(xprt);
-	}
 
 	mtx_destroy(&ct->ct_lock);
 	if (so) {
--- rpc/clnt_rc.c.sav	2017-03-22 21:30:23.616081000 -0400
+++ rpc/clnt_rc.c	2017-03-22 21:31:36.719313000 -0400
@@ -450,7 +450,6 @@ clnt_reconnect_control(CLIENT *cl, u_int
 
 	case CLSET_BACKCHANNEL:
 		xprt = (SVCXPRT *)info;
-		SVC_ACQUIRE(xprt);
 		xprt_register(xprt);
 		rc->rc_backchannel = info;
 		break;

Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?YTXPR01MB01890E5CFDB2C827F50B0991DD3F0>