From a63eae65ff8789994c40573a0aa65128022c8bf2 Mon Sep 17 00:00:00 2001 From: Kirk McKusick Date: Sat, 30 Jan 2021 00:03:37 -0800 Subject: [PATCH] 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) {