vfs: establish lock ordering for FilesystemImpl.PrependPath
Add type parameter Filesystem to vfs/genericfstree, which is required to
provide ancestryMu sync.RWMutex, and add such a RWMutex to all FSImpls that
use genericfstree.
Modify genericfstree.PrependPath() and genericfstree.IsDescendant() to use
ancestryMu to ensure atomicity. For callers of genericfstree.PrependPath(),
this means that (broader) FSImpl locks no longer need to be held during the
call. For callers of genericfstree.IsDescendant(), this means that we can
remove documentation warnings about its non-atomicity.
Minor cleanup: Remove useless variable start, which is always 0, from
MM.ReadMaps/SmapsDataInto().
vfs: establish lock ordering for FilesystemImpl.PrependPath
Add type parameter Filesystem to vfs/genericfstree, which is required to provide
ancestryMu sync.RWMutex
, and add such a RWMutex to all FSImpls that use genericfstree.Modify genericfstree.PrependPath() and genericfstree.IsDescendant() to use ancestryMu to ensure atomicity. For callers of genericfstree.PrependPath(), this means that (broader) FSImpl locks no longer need to be held during the call. For callers of genericfstree.IsDescendant(), this means that we can remove documentation warnings about its non-atomicity.
Minor cleanup: Remove useless variable
start
, which is always 0, from MM.ReadMaps/SmapsDataInto().