[PATCHBOMB v13.2] xfs: directory parent pointers

Darrick J. Wong
2024-04-16T01:16:41Z

Hi everyone,

Christoph and I have been working to get the directory parent pointers
patchset into shape for merging in the next kernel cycle. This v13
release contains what I hope are the last ondisk format changes -- we've
gone back to parent pointers being xattrs attached to the child, wherein
the attr name is the dirent name, and the attr value is a handle to the
parent directory.

We've solved the pptr lookup uniqueness problem by forcing all
XFS_ATTR_PARENT attr lookups to be done on the name and value; avoided
namehash collisions on container farms by adjusting the hash function
slightly; and avoided the entire log incompat feature flag mess by
defining a permanent incompat feature for parent pointers and using
totally separate attr log item opcodes.

With that, I think this is finally ready to go.

Full versions are here:
https://git.kernel.org/pub/scm/linux/kernel/git/djwong/xfs-linux.git/log/?h=vectorized-scrub
https://git.kernel.org/pub/scm/linux/kernel/git/djwong/xfsprogs-dev.git/log/?h=vectorized-scrub

Of the 82 patches in this patchbomb, 15 have not completed review:

[PATCHSET v13.2 1/7] xfs: shrink struct xfs_da_args
[PATCH 3/5] xfs: remove xfs_da_args.attr_flags
[PATCH 4/5] xfs: make attr removal an explicit operation

[PATCHSET v13.2 2/7] xfs: improve extended attribute validation
[PATCH 06/14] xfs: check shortform attr entry flags specifically
[PATCH 13/14] xfs: refactor name/value iovec validation in

[PATCHSET v13.2 3/7] xfs: Parent Pointers
[PATCH 08/31] xfs: refactor xfs_is_using_logged_xattrs checks in attr
[PATCH 09/31] xfs: create attr log item opcodes and formats for
[PATCH 10/31] xfs: record inode generation in xattr update log intent
[PATCH 25/31] xfs: actually check the fsid of a handle

[PATCHSET v13.2 4/7] xfs: scrubbing for parent pointers
[PATCH 1/7] xfs: revert commit 44af6c7e59b12

[PATCHSET v13.2 5/7] xfs: online repair for parent pointers
[PATCH 01/17] xfs: remove some boilerplate from xfs_attr_set
[PATCH 02/17] xfs: make the reserved block permission flag explicit
[PATCH 03/17] xfs: use xfs_attr_defer_parent for calling xfs_attr_set

[PATCHSET v13.2 7/7] xfs: vectorize scrub kernel calls
[PATCH 2/4] xfs: move xfs_ioc_scrub_metadata to scrub.c
[PATCH 3/4] xfs: introduce vectored scrub mode
[PATCH 4/4] xfs: only iget the file once when doing vectored

Most of these are bug fixes, or cleanups that Christoph and Dave and I
talked about during the review of v13.2.

--D