[PATCH v3 00/18] xfsprogs: format the log correctly on v5 supers
Brian Foster
bfoster at redhat.com
Fri Oct 2 13:19:37 CDT 2015
Hi all,
Here is v3 of the userspace v5 log formatting fixes. This version is based on
the latest variant of the kernel metadata LSN verification patch:
http://oss.sgi.com/pipermail/xfs/2015-September/043846.html
The updates are relatively minor with the exception of added support for
xfs_copy. Patches 1-6 update libxfs/libxlog to support max. metadata LSN
tracking, cycle-specific log formatting and otherwise prepare for subsequent
fixes. Patches 7-11 update xfs_repair to no longer zero the log by default and
format v5 logs correctly based on the maximum seen metadata LSN. Patches 12-13
update the xfs_db uuid and metadump commands to bump the cycle number when
formatting v5 logs. Patch 14 is an independent bug fix to enable xfs_copy to
detect and warn about a dirty log in the source filesystem. Patches 15-18
refactor and fix xfs_copy to also bump the cycle number when formatting v5 logs.
Thoughts, reviews, flames appreciated.
Brian
v3:
- Rebased on latest LSN validation kernel patch.
- Added comment for dummy log clearing tid.
- Seed max lsn value from initial log state in xfs_repair.
- Added xfs_copy fixes (non-dup. dirty log fix + v5 log format fixes).
v2: http://oss.sgi.com/pipermail/xfs/2015-September/043630.html
- Rebase to latest kernel variant of invalid metadata LSN detection.
- Added support for xfs_db's uuid command and xfs_metadump.
v1: http://oss.sgi.com/pipermail/xfs/2015-August/043397.html
Brian Foster (18):
libxfs: validate metadata LSNs against log on v5 superblocks
libxfs: track largest metadata LSN in use via verifiers
libxfs: don't hardcode cycle 1 into unmount op header
libxfs: pass lsn param to log clear and record header logging helpers
libxfs: add ability to clear log to arbitrary log cycle
libxlog: pull struct xlog out of xlog_is_dirty()
xfs_repair: track log state throughout all recovery phases
xfs_repair: process the log in no_modify mode
xfs_repair: format the log with forward cycle number on v5 supers
xfs_repair: don't clear the log by default
xfs_repair: seed the max lsn from log state in phase 2
xfs_db: do not reset current lsn from uuid command on v5 supers
db/metadump: bump lsn when log is cleared on v5 supers
xfs_copy: check for dirty log on non-duplicate copies
xfs_copy: genericize write helper to facilitate separate log buf
xfs_copy: store data buf alignment in buf data structure
xfs_copy: refactor log format code into new helper
xfs_copy: format v5 sb logs correctly
Makefile | 2 +-
copy/Makefile | 4 +-
copy/xfs_copy.c | 196 +++++++++++++++++++++++++++++++++++---------
copy/xfs_copy.h | 1 +
db/init.c | 25 +++---
db/metadump.c | 21 ++++-
db/sb.c | 18 +++-
include/libxfs.h | 13 ++-
include/libxlog.h | 3 +-
include/xfs_mount.h | 6 ++
libxfs/libxfs_priv.h | 2 +
libxfs/rdwr.c | 160 ++++++++++++++++++++++++++++++------
libxfs/util.c | 41 +++++++++
libxfs/xfs_alloc.c | 12 ++-
libxfs/xfs_attr_leaf.c | 2 +
libxfs/xfs_btree.c | 16 +++-
libxfs/xfs_da_btree.c | 3 +
libxfs/xfs_dir2_block.c | 2 +
libxfs/xfs_dir2_data.c | 2 +
libxfs/xfs_dir2_leaf.c | 2 +
libxfs/xfs_dir2_node.c | 2 +
libxfs/xfs_ialloc.c | 9 +-
libxfs/xfs_sb.c | 9 ++
libxfs/xfs_symlink_remote.c | 3 +
libxlog/util.c | 37 +++++----
mkfs/xfs_mkfs.c | 4 +-
repair/phase2.c | 90 +++++++++++++-------
repair/xfs_repair.c | 79 +++++++++++++++++-
28 files changed, 614 insertions(+), 150 deletions(-)
--
2.1.0
More information about the xfs
mailing list