git: a63eae65ff87 - main - Revert 2d4422e7991a, Eliminate lock order reversal in UFS ffs_unmount().

Kirk McKusick mckusick at FreeBSD.org
Sat Jan 30 08:01:25 UTC 2021


The branch main has been updated by mckusick:

URL: https://cgit.FreeBSD.org/src/commit/?id=a63eae65ff8789994c40573a0aa65128022c8bf2

commit a63eae65ff8789994c40573a0aa65128022c8bf2
Author:     Kirk McKusick <mckusick at FreeBSD.org>
AuthorDate: 2021-01-30 08:03:37 +0000
Commit:     Kirk McKusick <mckusick at FreeBSD.org>
CommitDate: 2021-01-30 08:03:37 +0000

    Revert 2d4422e7991a, Eliminate lock order reversal in UFS ffs_unmount().
    
    After discussion with Chuck Silvers (chs@) we have decided that
    there is a better way to resolve this lock order reversal which
    will be committed separately.
    
    Sponsored by: Netflix
---
 sys/ufs/ffs/ffs_vfsops.c | 9 +--------
 1 file changed, 1 insertion(+), 8 deletions(-)

diff --git a/sys/ufs/ffs/ffs_vfsops.c b/sys/ufs/ffs/ffs_vfsops.c
index 415bb4614c1a..60d4dad57d03 100644
--- a/sys/ufs/ffs/ffs_vfsops.c
+++ b/sys/ufs/ffs/ffs_vfsops.c
@@ -1547,14 +1547,7 @@ ffs_unmount(mp, mntflags)
 	BO_UNLOCK(&ump->um_odevvp->v_bufobj);
 	atomic_store_rel_ptr((uintptr_t *)&ump->um_dev->si_mountpt, 0);
 	mntfs_freevp(ump->um_devvp);
-	/* Avoid LOR in vrele by passing in locked vnode and using vput */
-	if (vn_lock(ump->um_odevvp, LK_EXCLUSIVE | LK_NOWAIT) == 0) {
-		vput(ump->um_odevvp);
-	} else {
-		/* This should never happen, see commit message for details */
-		printf("ffs_unmount: Unexpected LK_NOWAIT failure\n");
-		vrele(ump->um_odevvp);
-	}
+	vrele(ump->um_odevvp);
 	dev_rel(ump->um_dev);
 	mtx_destroy(UFS_MTX(ump));
 	if (mp->mnt_gjprovider != NULL) {


More information about the dev-commits-src-all mailing list