[pnfs] [PATCH] xs_tcp_read_request: unlock transport_lock only for RPC_REPLY

Benny Halevy bhalevy at panasas.com
Wed Nov 28 09:22:53 EST 2007


The lock is taken only in the (calldir == RPC_REPLY) path

Signed-off-by: Benny Halevy <bhalevy at panasas.com>
---
 net/sunrpc/xprtsock.c |    6 ++++--
 1 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/net/sunrpc/xprtsock.c b/net/sunrpc/xprtsock.c
index 883a134..3247521 100644
--- a/net/sunrpc/xprtsock.c
+++ b/net/sunrpc/xprtsock.c
@@ -1065,13 +1065,15 @@ out:
 			wake_up(&xprt->serv->sv_cb_waitq);
 		}
 	}
-	spin_unlock(&xprt->transport_lock);
+	if (calldir == RPC_REPLY)
+		spin_unlock(&xprt->transport_lock);
 	xs_tcp_check_fraghdr(transport);
 	return;
 
 error:
 	transport->tcp_flags &= ~TCP_RCV_COPY_DATA;
-	spin_unlock(&xprt->transport_lock);
+	if (calldir == RPC_REPLY)
+		spin_unlock(&xprt->transport_lock);
 	return;
 }
 
-- 
1.5.3.3



More information about the pNFS mailing list