mbox series

[v5,00/25] xfsprogs: parent pointers for v5

Message ID 20221110210527.56628-1-allison.henderson@oracle.com (mailing list archive)
Headers show
Series xfsprogs: parent pointers for v5 | expand

Message

Allison Henderson Nov. 10, 2022, 9:05 p.m. UTC
From: Allison Henderson <allison.henderson@oracle.com>

Hi all,

This is corresponding port of the v5 parent pointer patch set for xfsprogs.  The
goal of the set is to enable use of the parent pointer feature on the kernel    
side, and provide basic user space utilities.                                   
                                                                                
The first 20 patches synchronize libxfs with changes seen the kernel space      
series. I will pick up the reviews from the kernel side series and mirror them   
here.  The later patches add the needed changes for printing logged parents,    
adding parents in protofiles, ioctl plumbing and command line flags.            

I dont often send out the usr space side since much of it is the same as the    
kernel space series, and the user space mechanics wont have much use with out   
the kernel support anyway.  So it makes sense to encourage reviewers to focus   
their efforts on getting the kernel series out of the way first.  But I think   
doing an an occasional post is good just so that people can see the whole       
picture to have and idea of where it's going, and also just for archiving       
reasons.   

This set can be viewed on github here:
https://github.com/allisonhenderson/xfsprogs/tree/xfsprogs_new_pptrs_v5_r1                                                      
As always, comments and feedback are appreciated.  Thank you!                   

Allison

Allison Collins (3):
  xfsprogs: get directory offset when adding directory name
  xfsprogs: get directory offset when replacing a directory name
  xfsprogs: implement the upper half of parent pointers

Allison Henderson (22):
  xfsprogs: Fix default superblock attr bits
  xfsprogs: Add new name to attri/d
  xfsprogs: Increase XFS_DEFER_OPS_NR_INODES to 5
  xfsprogs: get directory offset when removing directory name
  xfsprogs: add parent pointer support to attribute code
  xfsprogs: define parent pointer xattr format
  xfsprogs: Add xfs_verify_pptr
  xfsprogs: Increase rename inode reservation
  xfsprogs: extend transaction reservations for parent attributes
  xfsprogs: add parent attributes to link
  xfsprogs: add parent attributes to symlink
  xfsprogs: parent pointer attribute creation
  xfsprogs: remove parent pointers in unlink
  xfsprogs: Add parent pointers to rename
  xfsprogs: Add the parent pointer support to the superblock version 5.
  xfsprogs: Add parent pointer ioctl
  xfsprogs: fix unit conversion error in xfs_log_calc_max_attrsetm_res
  xfsprogs: drop compatibility minimum log size computations for reflink
  xfsprogs: Add parent pointer flag to cmd
  xfsprogs: Print pptrs in ATTRI items
  xfsprogs: Add parent pointers during protofile creation
  xfsprogs: Add i, n and f flags to parent command

 include/handle.h         |   2 +
 include/parent.h         |  25 ++
 include/xfs_trans.h      |   7 +
 io/parent.c              | 505 ++++++++++++---------------------------
 libfrog/fsgeom.c         |   4 +
 libfrog/paths.c          | 136 +++++++++++
 libfrog/paths.h          |  21 +-
 libhandle/Makefile       |   2 +-
 libhandle/handle.c       |   7 +-
 libhandle/parent.c       | 361 ++++++++++++++++++++++++++++
 libxfs/Makefile          |   2 +
 libxfs/libxfs_priv.h     |   2 +
 libxfs/xfs_attr.c        |  71 +++++-
 libxfs/xfs_attr.h        |  13 +-
 libxfs/xfs_da_btree.h    |   3 +
 libxfs/xfs_da_format.h   |  38 ++-
 libxfs/xfs_defer.c       |  28 ++-
 libxfs/xfs_defer.h       |   8 +-
 libxfs/xfs_dir2.c        |  21 +-
 libxfs/xfs_dir2.h        |   7 +-
 libxfs/xfs_dir2_block.c  |   9 +-
 libxfs/xfs_dir2_leaf.c   |   8 +-
 libxfs/xfs_dir2_node.c   |   8 +-
 libxfs/xfs_dir2_sf.c     |   6 +
 libxfs/xfs_format.h      |   4 +-
 libxfs/xfs_fs.h          |  75 ++++++
 libxfs/xfs_log_format.h  |   7 +-
 libxfs/xfs_log_rlimit.c  |  53 ++++
 libxfs/xfs_parent.c      | 208 ++++++++++++++++
 libxfs/xfs_parent.h      |  46 ++++
 libxfs/xfs_sb.c          |   4 +
 libxfs/xfs_trans_resv.c  | 324 +++++++++++++++++++++----
 libxfs/xfs_trans_space.h |   6 -
 logprint/log_redo.c      | 210 ++++++++++++++--
 logprint/logprint.h      |   5 +-
 man/man3/xfsctl.3        |  55 +++++
 mkfs/proto.c             |  50 ++--
 mkfs/xfs_mkfs.c          |  31 ++-
 repair/attr_repair.c     |  19 +-
 repair/phase6.c          |  18 +-
 scrub/inodes.c           |  26 ++
 scrub/inodes.h           |   2 +
 42 files changed, 1931 insertions(+), 506 deletions(-)
 create mode 100644 libhandle/parent.c
 create mode 100644 libxfs/xfs_parent.c
 create mode 100644 libxfs/xfs_parent.h