[Cluster-devel] [GFS2 v8 PATCH 00/22] GFS2 Recovery corruption patches v8

Bob Peterson rpeterso at redhat.com
Mon Dec 9 15:36:38 UTC 2019


Now that Linus has merged our latest for-next patches, I thought I'd
send out my latest patches for the recovery / journal replay corruption
problems. I also pushed them to a "for-next.recovery13b" branch in case
people want to check that out or cherry-pick from it.

Like before, some of these may be pushed separately, but many build upon
others, so it may be tricky.

The most important patch in this set is the last one:
gfs2: Do proper error checking for go_sync family of glops functions.

This recovery patch set has been extensively tested in rhel8 recovery
situations.

Bob Peterson (22):
  gfs2: Introduce concept of a pending withdraw
  gfs2: clear ail1 list when gfs2 withdraws
  gfs2: Rework how rgrp buffer_heads are managed
  gfs2: log error reform
  gfs2: Only complain the first time an io error occurs in quota or log
  gfs2: Ignore dlm recovery requests if gfs2 is withdrawn
  gfs2: move check_journal_clean to util.c for future use
  gfs2: Allow some glocks to be used during withdraw
  gfs2: Make secondary withdrawers wait for first withdrawer
  gfs2: Force withdraw to replay journals and wait for it to finish
  gfs2: fix infinite loop when checking ail item count before go_inval
  gfs2: Add verbose option to check_journal_clean
  gfs2: Issue revokes more intelligently
  gfs2: Prepare to withdraw as soon as an IO error occurs in log write
  gfs2: Check for log write errors before telling dlm to unlock
  gfs2: new slab for transactions
  gfs2: Do log_flush in gfs2_ail_empty_gl even if ail list is empty
  gfs2: Don't skip log flush if glock still has revokes
  gfs2: Withdraw in gfs2_ail1_flush if write_cache_pages returns error
  gfs2: drain the ail2 list after io errors
  gfs2: Don't demote a glock until its revokes are written
  gfs2: Do proper error checking for go_sync family of glops functions

 fs/gfs2/glock.c      | 123 ++++++++++++++++++----
 fs/gfs2/glops.c      | 148 ++++++++++++++++++++++-----
 fs/gfs2/incore.h     |  20 +++-
 fs/gfs2/lock_dlm.c   |  52 ++++++++++
 fs/gfs2/log.c        | 221 +++++++++++++++++++++++++++-------------
 fs/gfs2/log.h        |   1 +
 fs/gfs2/lops.c       |  12 ++-
 fs/gfs2/main.c       |  23 +++++
 fs/gfs2/meta_io.c    |   2 +-
 fs/gfs2/ops_fstype.c |  55 ++--------
 fs/gfs2/quota.c      |   8 +-
 fs/gfs2/recovery.c   |   5 +
 fs/gfs2/rgrp.c       |  60 +++++++----
 fs/gfs2/rgrp.h       |   1 -
 fs/gfs2/super.c      |  73 ++++++++++----
 fs/gfs2/trans.c      |  32 ++++--
 fs/gfs2/trans.h      |   1 +
 fs/gfs2/util.c       | 235 +++++++++++++++++++++++++++++++++++++++++--
 fs/gfs2/util.h       |   7 +-
 19 files changed, 852 insertions(+), 227 deletions(-)

-- 
2.23.0




More information about the Cluster-devel mailing list