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
F97799643: D40852.diff
Tue, Oct 1, 8:02 AM
Unknown Object (File)
Sat, Sep 14, 11:22 AM
Unknown Object (File)
Sat, Sep 14, 9:03 AM
Unknown Object (File)
Fri, Sep 13, 4:30 AM
Unknown Object (File)
Sun, Sep 8, 10:52 PM
Unknown Object (File)
Thu, Sep 5, 10:04 PM
Unknown Object (File)
Jun 22 2024, 7:24 PM
Unknown Object (File)
Jun 20 2024, 5:55 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.