changeset 13986:341879d91372

2986 nfs: exi refcounter leak at rfs3_lookup Reviewed by: Christopher Siden <christopher.siden@delphix.com> Reviewed by: Garrett D'Amore <garrett@damore.org> Approved by: Dan McDonald <danmcd@nexenta.com>
author Marcel Telka <marcel.telka@nexenta.com>
date Thu, 14 Mar 2013 18:08:41 -0400
parents ad441dd34478
children c8aa73ad0c0b
files usr/src/uts/common/fs/nfs/nfs3_srv.c
diffstat 1 files changed, 10 insertions(+), 10 deletions(-) [+]
line wrap: on
line diff
--- a/usr/src/uts/common/fs/nfs/nfs3_srv.c	Thu Mar 14 17:58:04 2013 -0400
+++ b/usr/src/uts/common/fs/nfs/nfs3_srv.c	Thu Mar 14 18:08:41 2013 -0400
@@ -21,7 +21,7 @@
 /*
  * Copyright (c) 1994, 2010, Oracle and/or its affiliates. All rights reserved.
  *
- * Copyright 2012 Nexenta Systems, Inc.  All rights reserved.
+ * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
  */
 
 /* Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1989 AT&T */
@@ -514,20 +514,20 @@
 			auth_weak = TRUE;
 	}
 
+	/*
+	 * If publicfh_flag is true then we have called rfs_publicfh_mclookup
+	 * and have obtained a new exportinfo in exi which needs to be
+	 * released. Note that the original exportinfo pointed to by exi
+	 * will be released by the caller, common_dispatch.
+	 */
+	if (publicfh_flag)
+		exi_rele(exi);
+
 	if (error) {
 		VN_RELE(vp);
 		goto out;
 	}
 
-	/*
-	 * If publicfh_flag is true then we have called rfs_publicfh_mclookup
-	 * and have obtained a new exportinfo in exi which needs to be
-	 * released. Note the the original exportinfo pointed to by exi
-	 * will be released by the caller, common_dispatch.
-	 */
-	if (publicfh_flag)
-		exi_rele(exi);
-
 	va.va_mask = AT_ALL;
 	vap = rfs4_delegated_getattr(vp, &va, 0, cr) ? NULL : &va;