[pnfs] [PATCH 02/11] pNFSD: DS must not hold nfs4_lock_stat when calling MDS on the same node.

Benny Halevy bhalevy at panasas.com
Mon Feb 11 07:59:54 EST 2008


From: Marc Eshel <eshel at almaden.ibm.com>

Signed-off-by: Marc Eshel <eshel at almaden.ibm.com>
---
 fs/nfsd/nfs4pnfsds.c |    5 ++++-
 1 files changed, 4 insertions(+), 1 deletions(-)

diff --git a/fs/nfsd/nfs4pnfsds.c b/fs/nfsd/nfs4pnfsds.c
index b97a288..6cb6f17 100644
--- a/fs/nfsd/nfs4pnfsds.c
+++ b/fs/nfsd/nfs4pnfsds.c
@@ -290,9 +290,12 @@ nfsv4_ds_get_state(struct svc_fh *cfh, stateid_t *stidp)
 		return dsp;
 	memcpy(&gs.stid, stidp, sizeof(stateid_t));
 	sb = ino->i_sb;
-	if (sb && sb->s_export_op->get_state)
+	if (sb && sb->s_export_op->get_state) {
+		nfs4_unlock_state();
 		status = sb->s_export_op->get_state(ino, &cfh->fh_handle, &gs);
 		dprintk("pNFSD: %s from MDS status %d\n", __func__, status);
+		nfs4_lock_state();
+	}
 	if (status)
 		return NULL;
 	/* create new pnfs_ds_stateid */
-- 
1.5.3.3



More information about the pNFS mailing list