-
Han-Wen Nienhuys authored
* In-process mounts are now always on synthetic inodes. FileSystems no longer have to generate GetAttr() responses for mount points. Advantages: - Simplifies FileSystems: there is no need to represent the state between mountpoint appearing and Mount() succeeding, and mount points appear automatically in ReadDir(). - Mount point inodes are always associated with one filesystem over their lifetime. This simplifies synchronization around unmount calls, which could previously lead to "unlock of unlocked mutex" panics. * (Un)mount always takes 2 locks: treeLock from the parent, and the treeLock of the filesystem itself, as the parent/child relation crosses the boundary between filesystems.. * Remove unmountPending variable; Unmount now removes all known inodes directly, removing reliance on eventual consistency. * Document Mount(), Unmount() * Forced forgets (eg. when fusermount -u is called) will also cause FileSystem.Unmount() to be called. * Changes to accomodate new conventions in ZipFs/UnionFs * Configure MultiZipFs using symlinks rather than catching file writes. * Remove return from Mount() api call.
4a79a89d