[and now with the correct xfs@xxxxxxxxxxx address]
Hi Folks,
The for-next branch of the xfsprogs repository at:
git://git.kernel.org/pub/scm/fs/xfs/xfsprogs-dev.git
has just been updated. It now contains full reverse mapping btree
support, which can be turned on at mkfs time via "-m rmapbt=1".
Filesystems using reverse mappings are bleeding edge experimental at
thsi point in time, so don't use this for any data you actually care
about right now.
*IMPORTANT*: Using reverse mapping functionality requires a
*4.8-rc3* kernel or more recent (Linus tagged 4.8-rc3 about 30
minutes ago) due to a small change in on-disk format required for
efficient accounting. If you use a 4.8-rc[12] kernel, you will see
corruptions when you update your kernel to -rc3 or later. For those
of you who have existing rmapbt=1 filesystems, please update your
xfsprogs and kernel at the same time and remake those filesystems.
Running repair should also fix up the on-disk accounted we added,
so mkfs may not be necessary.
>From this point onwards, however, the rmapbt on-disk format will be
stable and will not change without the use of feature bits to tell
the kernel about the change.
-Dave.
The new head of the master branch is commit:
c563396 mkfs.xfs: create filesystems with reverse-mappings
New Commits:
Darrick J. Wong (35):
[de2f203] libxfs: fix xfs_isset pointer calculation
[59d2274] xfs_buflock: add a tool that can be used to find buffer
deadlocks
[1c47bd6] xfs_io: bmap should print 'delalloc', not '-2'
[2110aea] xfs_repair: preserve in-core meta_uuid while zeroing unused sb
portions
[9e1c66c] mkfs: fix library ordering
[7079b3d] xfs_logprint: move the EFI copying/printing functions to a redo
items file
[c4c32d8] xfs_logprint: fix formatting issues with the EFI printing code
[a481a58] man: document the DAX fsxattr inode flag
[80afb9a] xfs_io: add free-extent error injection type
[8511b71] xfs: store rmapbt block count in the AGF
[59b8636] xfs: remove OWN_AG rmap when allocating a block from the AGFL
[794a560] libxfs: fix various oddities in the kernel import
[dc3bce0] libxfs: add deferred ops item handlers for userspace
[a9d7b98] xfs_db: display rmap btree contents
[e3dcc17] xfs_db: spot check rmapbt
[e434854] xfs_db: copy the rmap btree
[86bb49e] xfs_db: introduce the 'fsmap' command to find what owns a set
of fsblocks
[f6b78a5] xfs_growfs: report rmapbt presence
[dea764e] xfs_io: add rmap-finish error injection type
[4428538] xfs_logprint: support rmap redo items
[0f94fa4] xfs_repair: use rmap btree data to check block types
[7ddb50f] xfs_repair: fix fino_bno calculation when rmapbt is enabled
[9c9990b] xfs_repair: create a slab API for allocating arrays in large
chunks
[9e0f480] xfs_repair: collect reverse-mapping data for refcount/rmap tree
rebuilding
[1102c15] xfs_repair: record and merge raw rmap data
[00efc33] xfs_repair: add inode bmbt block rmaps
[713b681] xfs_repair: add fixed-location per-AG rmaps
[11b9e51] xfs_repair: check existing rmapbt entries against observed rmaps
[934b554] xfs_repair: rebuild reverse-mapping btree
[62cf990] xfs_repair: add per-AG btree blocks to rmap data and add to
rmapbt
[b7f12e5] xfs_repair: merge data & attr fork reverse mappings
[6584173] xfs_repair: look for mergeable rmaps
[a418fe7] xfs_repair: check for impossible rmap record field combinations
[e5cc9d5] mkfs: set agsize prior to calculating minimum log size
[c563396] mkfs.xfs: create filesystems with reverse-mappings
Code Diffstat:
db/Makefile | 2 +-
db/agf.c | 9 +
db/btblock.c | 100 ++++++
db/btblock.h | 5 +
db/check.c | 85 ++++-
db/command.c | 2 +
db/field.c | 19 ++
db/field.h | 9 +
db/fsmap.c | 172 ++++++++++
db/fsmap.h | 20 ++
db/metadump.c | 74 ++++
db/type.c | 5 +
db/type.h | 2 +-
growfs/xfs_growfs.c | 14 +-
include/libxfs.h | 3 +-
include/xfs_multidisk.h | 4 +-
include/xfs_trans.h | 3 +
io/bmap.c | 2 +
io/inject.c | 6 +-
libxfs/Makefile | 1 +
libxfs/defer_item.c | 258 ++++++++++++++
libxfs/init.c | 4 +
libxfs/libxfs_api_defs.h | 13 +
libxfs/xfs_alloc.c | 19 ++
libxfs/xfs_format.h | 13 +-
libxfs/xfs_rmap_btree.c | 6 +
libxfs/xfs_rmap_btree.h | 7 -
logprint/Makefile | 2 +-
logprint/log_misc.c | 155 +--------
logprint/log_print_all.c | 72 +---
logprint/log_redo.c | 382 +++++++++++++++++++++
logprint/logprint.h | 11 +-
man/man3/xfsctl.3 | 5 +
man/man8/mkfs.xfs.8 | 20 ++
man/man8/xfs_db.8 | 65 +++-
mkfs/Makefile | 2 +-
mkfs/maxtrres.c | 8 +-
mkfs/xfs_mkfs.c | 142 ++++++--
repair/Makefile | 4 +-
repair/agheader.c | 4 +
repair/dinode.c | 15 +
repair/incore.h | 16 +-
repair/phase4.c | 62 ++++
repair/phase5.c | 456 +++++++++++++++++++++++--
repair/rmap.c | 924
++++++++++++++++++++++++++++++++++++++++++++++++++
repair/rmap.h | 55 +++
repair/scan.c | 491 ++++++++++++++++++++++++++-
repair/slab.c | 456 +++++++++++++++++++++++++
repair/slab.h | 60 ++++
repair/xfs_repair.c | 10 +-
tools/xfsbuflock.py | 205 +++++++++++
51 files changed, 4159 insertions(+), 320 deletions(-)
create mode 100644 db/fsmap.c
create mode 100644 db/fsmap.h
create mode 100644 libxfs/defer_item.c
create mode 100644 logprint/log_redo.c
create mode 100644 repair/rmap.c
create mode 100644 repair/rmap.h
create mode 100644 repair/slab.c
create mode 100644 repair/slab.h
create mode 100755 tools/xfsbuflock.py
--
Dave Chinner
david@xxxxxxxxxxxxx
|