Page MenuHomeFreeBSD

vfs: stop unlocking the vnode upfront in vput
ClosedPublic

Authored by mjg on Jan 24 2020, 1:45 AM.
Tags
None
Referenced Files
F173342868: D23344.id67236.diff
Fri, Sep 25, 8:38 AM
F173321255: D23344.id67239.diff
Fri, Sep 25, 5:37 AM
Unknown Object (File)
Thu, Sep 24, 8:13 AM
Unknown Object (File)
Thu, Sep 24, 5:42 AM
Unknown Object (File)
Wed, Sep 23, 7:03 PM
Unknown Object (File)
Wed, Sep 23, 6:35 PM
Unknown Object (File)
Wed, Sep 23, 4:20 PM
Unknown Object (File)
Wed, Sep 23, 3:12 PM
Subscribers

Details

Summary

Doing so runs into races with filesystems which make half-constructed vnodes visible to other users, while depending on the chain vput -> vinactive -> vrecycle to be executed without dropping the vnode lock.

Impediments for making this work got cleared up (notably vop_unlock_post now does not do anything and lockmgr stops touching the lock after the final write). Stacked filesystems keep vhold/vdrop across unlock, which arguably can now be eliminated.

Diff Detail

Repository
rS FreeBSD src repository - subversion
Lint
Lint Skipped
Unit
Tests Skipped
Build Status
Buildable 28889