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-main
mailing list