Revert 2d4422e799, 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
This commit is contained in:
Kirk McKusick 2021-01-30 00:03:37 -08:00
parent e948d980f7
commit a63eae65ff

View File

@ -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) {