changeset 12867:78110b63b535

6970064 missing VN_RELE in exportfs
author Pavel Filipensky <Pavel.Filipensky@Sun.COM>
date Mon, 19 Jul 2010 15:46:39 +0200
parents d1953f8e5b5f
children 2377353d2b97
files usr/src/uts/common/fs/nfs/nfs_export.c
diffstat 1 files changed, 6 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/usr/src/uts/common/fs/nfs/nfs_export.c	Mon Jul 19 13:49:46 2010 +0800
+++ b/usr/src/uts/common/fs/nfs/nfs_export.c	Mon Jul 19 15:46:39 2010 +0200
@@ -1103,6 +1103,9 @@
 
 	/* Do not allow sharing another vnode for already shared path */
 	if (ex1 && !PSEUDO(ex1) && !VN_CMP(ex1->exi_vp, vp)) {
+		VN_RELE(vp);
+		if (dvp != NULL)
+			VN_RELE(dvp);
 		pn_free(&lookpn);
 		exi_rele(ex1);
 		return (EEXIST);
@@ -1145,6 +1148,9 @@
 		    strcmp(ex2->exi_export.ex_path, lookpn.pn_path) != 0) {
 			DTRACE_PROBE(nfss__i__exported_lock2_stop);
 			rw_exit(&exported_lock);
+			VN_RELE(vp);
+			if (dvp != NULL)
+				VN_RELE(dvp);
 			pn_free(&lookpn);
 			return (EEXIST);
 		}