summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--xlators/nfs/server/src/nfs3.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/xlators/nfs/server/src/nfs3.c b/xlators/nfs/server/src/nfs3.c
index 7a1a0fc3d..b5db1b966 100644
--- a/xlators/nfs/server/src/nfs3.c
+++ b/xlators/nfs/server/src/nfs3.c
@@ -2868,11 +2868,15 @@ nfs3svc_remove_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
nfs3_fdcache_remove (nfs3, openfd);
}
+ /* This is the unref equivalent of the ref done when the inode was
+ * created on a lookup or a create request.
+ * The inode is finally unrefed in call state wipe.
+ */
+ inode_unref (cs->resolvedloc.inode);
do_not_unref_cached_fd:
nfs3_log_common_res (rpcsvc_request_xid (cs->req), "REMOVE", stat,
op_errno);
nfs3_remove_reply (cs->req, stat, preparent, postparent);
- inode_unref (cs->resolvedloc.inode);
nfs3_call_state_wipe (cs);
return 0;