[PATCH v2 0/8] xfs: log recovery torn write detection

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi all,

Here's v2 of log recovery torn write detection. This fixes a couple bugs
as noted in the replies to the v1 series and replaces the error
injection mechanism with an alternate version that actually writes an
invalid log record CRC to disk. An xfstests test based on this mechanism
is forthcoming.

This survives xfstests and runs through a significant number of error
injection iterations without any related problems. I have seen one or
two assert failures and whatnot that do not appear related to this
series and so far are not repeatable. Thoughts, reviews, flames
appreciated.

Brian

v2:
- Fixed bug in first bad record detection to return correct block when
  log wraps.
- Update torn record handling to truncate back to tail.
- Fixed up warning messages.
- Replaced v1 error injection mechanism with log write time CRC error
  injection.
v1: http://oss.sgi.com/pipermail/xfs/2015-November/044841.html
- Added bug fix for mkfs log record header inconsistency.
- Refactored log recovery code to support a CRC-check-only recovery
  pass.
- CRC verify the last 8 records behind the head to account for
  concurrent log writes.
- Verify the tail of the log as well when the head is torn.
- Added (rfc) crc error injection patch for testing purposes.
rfc: http://oss.sgi.com/pipermail/xfs/2015-July/042415.html

Brian Foster (8):
  xfs: detect and handle invalid iclog size set by mkfs
  xfs: refactor log record unpack and data processing
  xfs: refactor and open code log record crc check
  xfs: return start block of first bad log record during recovery
  xfs: support a crc verification only log record pass
  xfs: refactor log record start detection into a new helper
  xfs: detect and trim torn writes during log recovery
  xfs: debug mode log record crc error injection

 fs/xfs/libxfs/xfs_log_recover.h |   1 +
 fs/xfs/xfs_log.c                |  45 +++-
 fs/xfs/xfs_log_priv.h           |   3 +
 fs/xfs/xfs_log_recover.c        | 569 ++++++++++++++++++++++++++++++++--------
 fs/xfs/xfs_sysfs.c              |  36 +++
 5 files changed, 541 insertions(+), 113 deletions(-)

-- 
2.1.0

_______________________________________________
xfs mailing list
xfs@xxxxxxxxxxx
http://oss.sgi.com/mailman/listinfo/xfs



[Index of Archives]     [Linux XFS Devel]     [Linux Filesystem Development]     [Filesystem Testing]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux