Return an iterator for subpaths. Iterates from inner-most to top level.
Parent tree (or null if none)
Path within this filesystem
Returns the common prefix of paths. Assumes that if two pointers are different, they point at different paths. Destructively mutates paths as scratch space.
Global path (spanning multiple trees) This is to allow efficiently representing paths where the prefix (subvolume path) varies, e.g.: - /@root/usr/lib/libfoo.so.1.0.0 - /backups/@root-20200101000000/usr/lib/libfoo.so.1.0.0 - /backups/@root-20200102000000/usr/lib/libfoo.so.1.0.0 etc. Here we can store /backups/@root-20200102000000 etc. as one SubPath and /usr/lib/libfoo.so.1.0.0 as another, with the GlobalPath representing a concatenation of the two.