From: Brian Foster <bfoster@redhat.com>
To: xfs@oss.sgi.com
Subject: [PATCH v2 0/8] xfs: log recovery torn write detection
Date: Thu, 12 Nov 2015 10:37:20 -0500 [thread overview]
Message-ID: <1447342648-40012-1-git-send-email-bfoster@redhat.com> (raw)
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@oss.sgi.com
http://oss.sgi.com/mailman/listinfo/xfs
next reply other threads:[~2015-11-12 15:37 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-11-12 15:37 Brian Foster [this message]
2015-11-12 15:37 ` [PATCH v2 1/8] xfs: detect and handle invalid iclog size set by mkfs Brian Foster
2015-11-12 15:37 ` [PATCH v2 2/8] xfs: refactor log record unpack and data processing Brian Foster
2015-11-12 15:37 ` [PATCH v2 3/8] xfs: refactor and open code log record crc check Brian Foster
2015-11-12 15:37 ` [PATCH v2 4/8] xfs: return start block of first bad log record during recovery Brian Foster
2015-11-12 15:37 ` [PATCH v2 5/8] xfs: support a crc verification only log record pass Brian Foster
2015-11-12 15:37 ` [PATCH v2 6/8] xfs: refactor log record start detection into a new helper Brian Foster
2015-11-12 15:37 ` [PATCH v2 7/8] xfs: detect and trim torn writes during log recovery Brian Foster
2015-11-12 15:37 ` [PATCH v2 8/8] xfs: debug mode log record crc error injection Brian Foster
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1447342648-40012-1-git-send-email-bfoster@redhat.com \
--to=bfoster@redhat.com \
--cc=xfs@oss.sgi.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox