Page MenuHomeFreeBSD

vfs: simplify iteration over the lazy list
ClosedPublic

Authored by mjg on Jan 28 2020, 11:44 AM.
Tags
None
Referenced Files
Unknown Object (File)
Sat, May 3, 8:56 AM
Unknown Object (File)
Tue, Apr 22, 7:47 AM
Unknown Object (File)
Mon, Apr 21, 11:08 PM
Unknown Object (File)
Sun, Apr 20, 3:46 AM
Unknown Object (File)
Mon, Apr 14, 11:09 AM
Unknown Object (File)
Mon, Apr 14, 3:51 AM
Unknown Object (File)
Sun, Apr 13, 9:22 PM
Unknown Object (File)
Sun, Apr 13, 8:31 PM
Subscribers

Details

Summary

Hoisting removal prior to dooming the vnode provides an invariant that listmtx delays vgone, meaning VN_IS_DOOMED checks can be eliminated for the common case. This also means filtering routines can safely access ->v_data and ->v_object.

In contrast to the retired active list, vnodes don't get requeued on the lazy list. Thus if relocking is needed, we only need to check if the vnode got doomed. Other than that it must not have moved as long as we have a hold. New routine - vdrop not last - is added to handle this case.

Diff Detail

Repository
rS FreeBSD src repository - subversion
Lint
Lint Not Applicable
Unit
Tests Not Applicable