[Midnightbsd-cvs] src [8444] trunk/sys/cddl/compat/opensolaris/kern/opensolaris_lookup.c: use vfs_busy in travesere before calling VFS_ROOT

laffer1 at midnightbsd.org laffer1 at midnightbsd.org
Sun Sep 18 17:48:38 EDT 2016


Revision: 8444
          http://svnweb.midnightbsd.org/src/?rev=8444
Author:   laffer1
Date:     2016-09-18 17:48:37 -0400 (Sun, 18 Sep 2016)
Log Message:
-----------
use vfs_busy in travesere before calling VFS_ROOT

Modified Paths:
--------------
    trunk/sys/cddl/compat/opensolaris/kern/opensolaris_lookup.c

Modified: trunk/sys/cddl/compat/opensolaris/kern/opensolaris_lookup.c
===================================================================
--- trunk/sys/cddl/compat/opensolaris/kern/opensolaris_lookup.c	2016-09-18 21:48:12 UTC (rev 8443)
+++ trunk/sys/cddl/compat/opensolaris/kern/opensolaris_lookup.c	2016-09-18 21:48:37 UTC (rev 8444)
@@ -88,6 +88,7 @@
 		vfsp = vn_mountedvfs(cvp);
 		if (vfsp == NULL)
 			break;
+		error = vfs_busy(vfsp, 0);
 		/*
 		 * tvp is NULL for *cvpp vnode, which we can't unlock.
 		 */
@@ -95,6 +96,8 @@
 			vput(cvp);
 		else
 			vrele(cvp);
+		if (error)
+			return (error);
 
 		/*
 		 * The read lock must be held across the call to VFS_ROOT() to
@@ -101,6 +104,7 @@
 		 * prevent a concurrent unmount from destroying the vfs.
 		 */
 		error = VFS_ROOT(vfsp, lktype, &tvp);
+		vfs_unbusy(vfsp);
 		if (error != 0)
 			return (error);
 		cvp = tvp;



More information about the Midnightbsd-cvs mailing list