[Top] [All Lists]

[PATCH 00/28] xfsprogs: sparse inode chunks

To: xfs@xxxxxxxxxxx
Subject: [PATCH 00/28] xfsprogs: sparse inode chunks
From: Brian Foster <bfoster@xxxxxxxxxx>
Date: Tue, 2 Jun 2015 14:41:33 -0400
Delivered-to: xfs@xxxxxxxxxxx
Hi all,

Now that the sparse inode chunks feature is merged into the kernel tree
for 4.2, here is the first official drop of userspace support. This
series is based on the current libxfs-4.1-update branch.

Patches 1-10 are libxfs infrastructure and correspond to the similarly
named kernel patches. The bits not relevant to userspace are dropped
along with the bulk of the sparse inode chunk allocation logic from the
kernel due to the combination of non-existent dependencies in userspace
(e.g., xfs_bit.c) and the fact that this code isn't invoked from
userspace. The experimental feature warning was also dropped to avoid
noisy mkfs warnings that lead to spurious xfstests failures. The
subsequent patches add support to mkfs, xfs_db, xfs_info, xfs_repair and

Use the new '-i sparse' option to format a filesystem with sparse inode
chunks enabled:

        mkfs.xfs -f -m crc=1,finobt=1 -i sparse <dev>

Thoughts, reviews, flames appreciated. Thanks.


Brian Foster (28):
  xfs: create individual inode alloc. helper
  xfs: update free inode record logic to support sparse inode records
  xfs: support min/max agbno args in block allocator
  xfs: add sparse inode chunk alignment superblock field
  xfs: use sparse chunk alignment for min. inode allocation requirement
  xfs: sparse inode chunks feature helpers and mount requirements
  xfs: add fs geometry bit for sparse inode chunks
  xfs: introduce inode record hole mask for sparse inode chunks
  xfs: pass inode count through ordered icreate log item
  xfs: enable sparse inode chunks for v5 superblocks
  mkfs: sparse inode chunk support
  db: support sparse inode chunk inobt record and sb fields
  db: show sparse inodes feature state in version command output
  growfs: display sparse inode status from xfs_info
  repair: handle sparse format inobt record freecount correctly
  repair: remove duplicate field from aghdr_cnts
  repair: use ir_count for filesystems with sparse inode support
  repair: scan and track sparse inode chunks correctly
  repair: scan sparse finobt records correctly
  repair: validate ir_count field for sparse format records
  repair: process sparse inode records correctly
  repair: factor out sparse inodes from finobt reconstruction
  repair: do not account sparse inodes in phase 5 cursor init.
  repair: reconstruct sparse inode records correctly on disk
  repair: do not prefetch holes in sparse inode chunks
  repair: handle sparse inode alignment
  metadump: reorder inode record sanity checks and inode buffer read
  metadump: support sparse inode records

 db/btblock.c              |  45 ++++++++++--
 db/btblock.h              |   3 +
 db/check.c                |   8 +--
 db/field.c                |   4 ++
 db/field.h                |   2 +
 db/init.c                 |   4 +-
 db/metadump.c             |  90 ++++++++++++++++-------
 db/sb.c                   |   3 +
 db/type.c                 |  40 +++++++++++
 db/type.h                 |   1 +
 growfs/xfs_growfs.c       |  13 ++--
 include/libxfs.h          |  16 +++++
 include/xfs_mount.h       |   2 +
 libxfs/xfs_alloc.c        |  42 +++++++++--
 libxfs/xfs_alloc.h        |   2 +
 libxfs/xfs_format.h       |  48 +++++++++++--
 libxfs/xfs_fs.h           |   1 +
 libxfs/xfs_ialloc.c       |  87 +++++++++++++++++-----
 libxfs/xfs_ialloc.h       |   2 +-
 libxfs/xfs_ialloc_btree.c |  11 ++-
 libxfs/xfs_sb.c           |  27 ++++++-
 man/man8/mkfs.xfs.8       |  17 +++++
 mkfs/xfs_mkfs.c           |  37 +++++++++-
 repair/dino_chunks.c      | 162 ++++++++++++++++++++++++-----------------
 repair/incore.h           |  26 ++++++-
 repair/incore_ino.c       |   1 +
 repair/phase5.c           |  58 +++++++++++++--
 repair/prefetch.c         |  17 ++++-
 repair/sb.c               |  25 +++++--
 repair/scan.c             | 178 +++++++++++++++++++++++++++++++++++++---------
 30 files changed, 782 insertions(+), 190 deletions(-)


<Prev in Thread] Current Thread [Next in Thread>