[pnfs] [PATCH 3/3] pnfs client free layout even if get error from server

andros at umich.edu andros at umich.edu
Tue Sep 18 13:21:51 EDT 2007


From: Andy Adamson <andros at umich.edu>

Signed-off by: Marc Eshel<eshel at umich.edu>
---
 fs/nfs/pnfs.c |   12 +++++++++---
 1 files changed, 9 insertions(+), 3 deletions(-)

diff --git a/fs/nfs/pnfs.c b/fs/nfs/pnfs.c
index d7154b2..2b01c03 100644
--- a/fs/nfs/pnfs.c
+++ b/fs/nfs/pnfs.c
@@ -373,11 +373,17 @@ pnfs_return_layout(struct inode* ino, struct nfs4_pnfs_layout_segment *range)
 
 	status = pnfs_return_layout_rpc(server, &arg);
 
-	if (!status && nfsi->current_layout) {
-		dprintk ("%s: removing layout\n", __FUNCTION__);
+	if (nfsi->current_layout) {
+		if (status)
+			dprintk ("%s: pnfs_return_layout_rpc status=%d. "
+				 "removing layout anyway\n", __FUNCTION__,
+				 status);
+		else
+			dprintk ("%s: removing layout\n", __FUNCTION__);
+
 		server->pnfs_curr_ld->ld_io_ops->free_layout(&nfsi->current_layout, ino, &arg.lseg);
-	}
 
+	}
 	dprintk("%s:Exit status %d\n", __FUNCTION__, status);
 	return status;
 }
-- 
1.5.0.2



More information about the pNFS mailing list