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
F156465744: D40852.id125156.diff
Wed, May 13, 9:07 PM
F156465730: D40852.id124122.diff
Wed, May 13, 9:07 PM
F156465707: D40852.id125156.diff
Wed, May 13, 9:07 PM
F156464731: D40852.diff
Wed, May 13, 8:56 PM
Unknown Object (File)
Mon, Apr 27, 10:54 AM
Unknown Object (File)
Thu, Apr 23, 9:06 AM
Unknown Object (File)
Thu, Apr 23, 2:16 AM
Unknown Object (File)
Wed, Apr 22, 7:21 PM
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.