From d3e3a849ddce1ade85ddb885474b66299e98744d Mon Sep 17 00:00:00 2001 From: Rajesh Amaravathi Date: Mon, 6 May 2013 17:00:57 +0530 Subject: nfs: avoid double fd unref in opendir Noticed that the fd_unref was called on the fd regardless of the return value at nfs3svc_opendir_readdir_cbk(), hence removing an extra unref in the negative case in nfs_inode_opendir_cbk, which fixes the spurious fd_unref(). Change-Id: I2bf68410dd86cdf9cfe8a3d43adc27497d8bb36f BUG: 959190 Signed-off-by: Rajesh Amaravathi Reviewed-on: http://review.gluster.org/4943 Reviewed-by: Amar Tumballi Tested-by: Amar Tumballi Reviewed-by: Anand Avati --- xlators/nfs/server/src/nfs-inodes.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) (limited to 'xlators/nfs/server') diff --git a/xlators/nfs/server/src/nfs-inodes.c b/xlators/nfs/server/src/nfs-inodes.c index a68f8b227..291152f85 100644 --- a/xlators/nfs/server/src/nfs-inodes.c +++ b/xlators/nfs/server/src/nfs-inodes.c @@ -572,9 +572,7 @@ nfs_inode_opendir_cbk (call_frame_t *frame, void *cookie, xlator_t *this, struct nfs_fop_local *nfl = NULL; fop_open_cbk_t progcbk = NULL; - if ((op_ret == -1) && (fd)) - fd_unref (fd); - else + if (op_ret != -1) fd_bind (fd); inodes_nfl_to_prog_data (nfl, progcbk, frame); -- cgit