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)
Mon, Oct 20, 7:30 AM
Unknown Object (File)
Mon, Oct 20, 7:30 AM
Unknown Object (File)
Mon, Oct 20, 7:30 AM
Unknown Object (File)
Sun, Oct 19, 4:33 PM
Unknown Object (File)
Sun, Oct 19, 2:17 AM
Unknown Object (File)
Fri, Oct 3, 5:22 AM
Unknown Object (File)
Sep 14 2025, 6:34 PM
Unknown Object (File)
Aug 17 2025, 9:02 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