[RFC,v2,0/3] xfs: fix [f]inobt magic value verification
mbox series

Message ID 20190128152034.21080-1-bfoster@redhat.com
Headers show
  • xfs: fix [f]inobt magic value verification
Related show


Brian Foster Jan. 28, 2019, 3:20 p.m. UTC
Hi all,

Here's another RFC of the [f]inobt magic value verifier fixups. This is
a bit more polished so I figured I'd send another to solicit any
feedback on the helpers and whatnot. I also put together a mitigation
patch to change over verifier and btree block verification errors into a
warning. I suppose it's debatable whether we want the latter but FWIW
the commit log description describes the reasoning for each mitigation.

Patch 1 is a straightforward creation of a finobt verifier, patch 2
implements the magic value verification and patch 3 implements the
aforementioned error mitigation. This has been tested, but note that
Darrick's recent scrub verifier patch[1] is required for patch 2. I had
a patch to address that in this series but dropped it since it's already
been posted. Thoughts, reviews, flames appreciated.


[1] https://marc.info/?l=linux-xfs&m=154861208322420&w=2

- Split off finobt verifier into separate patch, assign it
- Created helpers for xfs_buf_ops magic value verification.
- Added error mitigation patch for problematic finobt blocks.
rfcv1: https://marc.info/?l=linux-xfs&m=154834528212262&w=2

Brian Foster (3):
  xfs: create a separate finobt verifier
  xfs: distinguish between inobt and finobt magic values
  xfs: detect and warn about finobt blocks with an inobt magic value

 fs/xfs/libxfs/xfs_ag.c           |  2 +-
 fs/xfs/libxfs/xfs_btree.c        | 12 +++++++--
 fs/xfs/libxfs/xfs_ialloc_btree.c | 43 ++++++++++++++++++++++++--------
 fs/xfs/libxfs/xfs_shared.h       |  1 +
 fs/xfs/scrub/agheader_repair.c   |  2 +-
 fs/xfs/xfs_buf.h                 | 19 ++++++++++++++
 fs/xfs/xfs_log_recover.c         |  6 +++--
 7 files changed, 69 insertions(+), 16 deletions(-)