On Thu, Apr 06, 2023 at 11:10:38AM -0700, Darrick J. Wong wrote: > Hi everyone, > > This submission contains all of the changes to the parent pointers > patchset that I've been working since last month's deluge. The kernel > and xfsprogs patchsets are based on Allison's v10 tag from some time > ago. To recap Allison's cover letter: > > "The goal of this patch set is to add a parent pointer attribute to each > inode. The attribute name containing the parent inode, generation, and > directory offset, while the attribute value contains the file name. > This feature will enable future optimizations for online scrub, shrink, > nfs handles, verity, or any other feature that could make use of quickly > deriving an inodes path from the mount point." > > v11 rebases everything against 6.3-rc5, and weaves all the changes that > I had made against v10 into Allison's original series. The new xattr > NVLOOKUP mode that I introduced for v10 is critical for handling parent > pointer attr name collisions with grace, so that has been retained from > v10. With that in place, I've replaced the diroffset in the ondisk > parent pointer with the dirent hash of the name. > > Parent pointers now look like this: > > (parent_ino, parent_gen, namehash) -> (name[]) > > I experimented with replacing the dahash with crc32c for this patchset > but left it out, having concluded that checksum operation has higher > overhead (thanks, crypto api!), would require someone to figure out crc > spoofing sufficiently well to keep metadump name obfuscation working, > and doesn't seem to improve collision resistance sufficiently to be > worth the added engineering cost. > > As of this submission, I think this feature is ready to go once we've > merged the online repair code and rebased the online repair code to > actually commit the repaired directories. > > If you want to pull the whole thing, use these links: > https://git.kernel.org/pub/scm/linux/kernel/git/djwong/xfs-linux.git/log/?h=pptrs > https://git.kernel.org/pub/scm/linux/kernel/git/djwong/xfsprogs-dev.git/log/?h=pptrs-drop-unnecessary <sigh> Apparently vim undid my edit here; the correct URL is: https://git.kernel.org/pub/scm/linux/kernel/git/djwong/xfsprogs-dev.git/log/?h=pptrs --D > https://git.kernel.org/pub/scm/linux/kernel/git/djwong/xfstests-dev.git/log/?h=pptrs > > --D