From mboxrd@z Thu Jan 1 00:00:00 1970 From: Bob Peterson Date: Mon, 9 Dec 2019 09:36:38 -0600 Subject: [Cluster-devel] [GFS2 v8 PATCH 00/22] GFS2 Recovery corruption patches v8 Message-ID: <20191209153700.700208-1-rpeterso@redhat.com> List-Id: To: cluster-devel.redhat.com MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit 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