Page MenuHomeFreeBSD

vfs: simplify iteration over the lazy list
ClosedPublic

Authored by mjg on Jan 28 2020, 11:44 AM.
Tags
None
Referenced Files
F107956612: D23397.id67481.diff
Sun, Jan 19, 10:37 PM
Unknown Object (File)
Sat, Jan 11, 9:16 PM
Unknown Object (File)
Thu, Jan 2, 3:26 AM
Unknown Object (File)
Dec 13 2024, 1:19 PM
Unknown Object (File)
Sep 17 2024, 3:22 PM
Unknown Object (File)
Sep 16 2024, 8:09 AM
Unknown Object (File)
Sep 14 2024, 10:59 PM
Unknown Object (File)
Sep 10 2024, 11:22 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