Hi all, this series started by trying to remove xfs_attr_shortform as sparse complains about it due using a variable sized array in struct using in a variable sized array. I ended up cleaning a lot more code around it once I started looking into it, including some basic cleanups for the inode fork inline data memory management (I'll have another series for more work there at a later time). Note that the dir2 equivalent for the structure has already been removed long time ago. Changes since v2: - fix use of an uninitialized error variable for impossible to hit code paths - add a patch to turn the above checks into asserts Changes since v1: - fix commit message typos - better document the shortform attr layout, stealing text from the dir2_sf definition. Diffstat: libxfs/xfs_attr.c | 33 ++---- libxfs/xfs_attr_leaf.c | 215 ++++++++++++++------------------------------ libxfs/xfs_attr_leaf.h | 7 - libxfs/xfs_attr_sf.h | 24 +++- libxfs/xfs_bmap.c | 4 libxfs/xfs_da_format.h | 33 +++--- libxfs/xfs_dir2.c | 2 libxfs/xfs_dir2_block.c | 6 - libxfs/xfs_dir2_sf.c | 78 ++++++--------- libxfs/xfs_iext_tree.c | 36 +++---- libxfs/xfs_inode_fork.c | 70 ++++++-------- libxfs/xfs_inode_fork.h | 10 -- libxfs/xfs_ondisk.h | 14 +- libxfs/xfs_symlink_remote.c | 4 scrub/attr.c | 17 +-- scrub/inode_repair.c | 4 scrub/readdir.c | 6 - scrub/symlink.c | 2 xfs_attr_list.c | 13 +- xfs_dir2_readdir.c | 6 - xfs_inode.c | 6 - xfs_inode_item.c | 10 -- xfs_symlink.c | 4 23 files changed, 245 insertions(+), 359 deletions(-)