svn commit: r352378 - stable/12/sys/ufs/ffs

Konstantin Belousov kib at FreeBSD.org
Mon Sep 16 06:12:13 UTC 2019


Author: kib
Date: Mon Sep 16 06:12:12 2019
New Revision: 352378
URL: https://svnweb.freebsd.org/changeset/base/352378

Log:
  MFC r352058:
  Remove some unneeded vfs_busy() calls in SU code.

Modified:
  stable/12/sys/ufs/ffs/ffs_softdep.c
Directory Properties:
  stable/12/   (props changed)

Modified: stable/12/sys/ufs/ffs/ffs_softdep.c
==============================================================================
--- stable/12/sys/ufs/ffs/ffs_softdep.c	Mon Sep 16 06:01:06 2019	(r352377)
+++ stable/12/sys/ufs/ffs/ffs_softdep.c	Mon Sep 16 06:12:12 2019	(r352378)
@@ -12478,24 +12478,13 @@ restart:
 		FREE_LOCK(ump);
 		if (ffs_vgetf(mp, parentino, LK_NOWAIT | LK_EXCLUSIVE, &pvp,
 		    FFSV_FORCEINSMQ)) {
-			error = vfs_busy(mp, MBF_NOWAIT);
-			if (error != 0) {
-				vfs_ref(mp);
-				VOP_UNLOCK(vp, 0);
-				error = vfs_busy(mp, 0);
-				vn_lock(vp, LK_EXCLUSIVE | LK_RETRY);
-				vfs_rel(mp);
-				if (error != 0)
-					return (ENOENT);
-				if (vp->v_iflag & VI_DOOMED) {
-					vfs_unbusy(mp);
-					return (ENOENT);
-				}
-			}
+			/*
+			 * Unmount cannot proceed after unlock because
+			 * caller must have called vn_start_write().
+			 */
 			VOP_UNLOCK(vp, 0);
 			error = ffs_vgetf(mp, parentino, LK_EXCLUSIVE,
 			    &pvp, FFSV_FORCEINSMQ);
-			vfs_unbusy(mp);
 			vn_lock(vp, LK_EXCLUSIVE | LK_RETRY);
 			if (vp->v_iflag & VI_DOOMED) {
 				if (error == 0)


More information about the svn-src-stable-12 mailing list