• Darrick J. Wong's avatar
    xfs: encode the btree geometry flags in the btree ops structure · fd9c7f77
    Darrick J. Wong authored
    Certain btree flags never change for the life of a btree cursor because
    they describe the geometry of the btree itself.  Encode these in the
    btree ops structure and reduce the amount of code required in each btree
    type's init_cursor functions.  This also frees up most of the bits in
    bc_flags.
    
    A previous version of this patch also converted the open-coded flags
    logic to helpers.  This was removed due to the pending refactoring (that
    follows this patch) to eliminate most of the state flags.
    
    Conversion script:
    
    sed \
     -e 's/XFS_BTREE_LONG_PTRS/XFS_BTGEO_LONG_PTRS/g' \
     -e 's/XFS_BTREE_ROOT_IN_INODE/XFS_BTGEO_ROOT_IN_INODE/g' \
     -e 's/XFS_BTREE_LASTREC_UPDATE/XFS_BTGEO_LASTREC_UPDATE/g' \
     -e 's/XFS_BTREE_OVERLAPPING/XFS_BTGEO_OVERLAPPING/g' \
     -e 's/cur->bc_flags & XFS_BTGEO_/cur->bc_ops->geom_flags \& XFS_BTGEO_/g' \
     -i $(git ls-files fs/xfs/*.[ch] fs/xfs/libxfs/*.[ch] fs/xfs/scrub/*.[ch])
    Signed-off-by: default avatarDarrick J. Wong <djwong@kernel.org>
    Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
    fd9c7f77
xfs_btree.c 137 KB