Page MenuHomeFreeBSD

Remove VV_CROSSLOCK flag, and logic in nullfs and unionfs
Needs ReviewPublic

Authored by olce on Jul 3 2023, 12:53 PM.
Tags
None
Referenced Files
Unknown Object (File)
Sun, Nov 17, 7:21 AM
Unknown Object (File)
Sun, Nov 17, 7:06 AM
Unknown Object (File)
Wed, Nov 13, 4:15 AM
Unknown Object (File)
Mon, Nov 11, 10:05 AM
Unknown Object (File)
Oct 1 2024, 8:02 AM
Unknown Object (File)
Sep 14 2024, 11:22 AM
Unknown Object (File)
Sep 14 2024, 9:03 AM
Unknown Object (File)
Sep 13 2024, 4:30 AM
Subscribers

Details

Reviewers
jah
mjg
kib
markj
Summary

This commit is part of a series whose goal is to remove the VV_CROSSLOCK vnode
flag and logic and fix a timing-dependent deadlock between lookup and unmount.

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Skipped
Unit
Tests Skipped
Build Status
Buildable 52839
Build 49730: arc lint + arc unit

Event Timeline

olce requested review of this revision.Jul 3 2023, 12:53 PM
sys/fs/unionfs/union_vfsops.c
326–327

This will no longer hold true with the new locking protocol, will it? The lookup path should go back to its old pre-VV_CROSSLOCK behavior of dropping the covered vnode lock before calling VFS_ROOT() to lock the next vnode in the mount chain while holding mp busy (though it seems the exact details here might change depending on the outcome of your conversation with mjg@)

Remove an obsolete comment about a remaining LOR in unionfs on below mounts.

olce marked an inline comment as done.Jul 25 2023, 8:59 PM
olce added inline comments.
sys/fs/unionfs/union_vfsops.c
326–327

Indeed. Not sure why I didn't remove this part of the comment from the start.

This should be true with mjg@'s proposal as well, even if it differs in the way to avoid locking both the covered and root vnode at the same time.