[RFC PATCH 00/13] Add parent pointer attributes

Allison Henderson
2017-08-10T01:43:41Z

Hi all,

This is my first pass at parent pointer attributes for xfs. It's also
my first patch set for xfs in general, so I would very much appreciate
the feedback. I got in touch with Brian Foster a while back, who was
gracious enough to give me what he had done thus far with it. From
there I've finished out the remove and rename routines. This
implementation uses the following on disk format:

name={parent inode, parent inode gen, dirent offset}
value={dirent filename}

I know folks have a lot of opinions about the format, so I'd
like to get peoples thoughts on it now that we have some code
to look at and discuss. Thanks!

Questions, comments and feedback are welcome!

Allison Henderson

Allison Henderson (3):
Add the extra space requirements for parent pointer attributes when
calculating the minimum log size during mkfs
Add parent pointers to rename
Add the parent pointer support to the superblock version 5.

Brian Foster (1):
xfs_bmap_add_attrfork(): re-add error handling from set_attrforkoff()
call

Dave Chinner (5):
xfs: define parent pointer xattr format
:xfs: extent transaction reservations for parent attributes
xfs: parent pointer attribute creation
xfs: add parent attributes to link
xfs: remove parent pointers in unlink

Mark Tinguely (4):
xfs: get directory offset when adding directory name
xfs: get directory offset when removing directory name
xfs: get directory offset when replacing a directory name
xfs: add parent pointer support to attribute code

fs/xfs/Makefile | 1 +
fs/xfs/libxfs/xfs_attr.c | 382 +++++++++++++++++++++++++++++++----------
fs/xfs/libxfs/xfs_bmap.c | 51 +++---
fs/xfs/libxfs/xfs_bmap.h | 1 +
fs/xfs/libxfs/xfs_da_btree.h | 1 +
fs/xfs/libxfs/xfs_da_format.h | 12 +-
fs/xfs/libxfs/xfs_dir2.c | 41 +++--
fs/xfs/libxfs/xfs_dir2.h | 9 +-
fs/xfs/libxfs/xfs_dir2_block.c | 9 +-
fs/xfs/libxfs/xfs_dir2_leaf.c | 8 +-
fs/xfs/libxfs/xfs_dir2_node.c | 8 +-
fs/xfs/libxfs/xfs_dir2_sf.c | 6 +
fs/xfs/libxfs/xfs_format.h | 43 ++++-
fs/xfs/libxfs/xfs_fs.h | 1 +
fs/xfs/libxfs/xfs_log_rlimit.c | 34 ++++
fs/xfs/libxfs/xfs_parent.c | 163 ++++++++++++++++++
fs/xfs/libxfs/xfs_trans_resv.c | 103 ++++++++---
fs/xfs/xfs_attr.h | 30 ++++
fs/xfs/xfs_fsops.c | 4 +-
fs/xfs/xfs_inode.c | 146 ++++++++++++----
fs/xfs/xfs_qm.c | 2 +-
fs/xfs/xfs_qm.h | 1 +
fs/xfs/xfs_symlink.c | 2 +-
23 files changed, 850 insertions(+), 208 deletions(-)
create mode 100644 fs/xfs/libxfs/xfs_parent.c

--
2.7.4