Hi,
On 01/05/2019 00:03, Bob Peterson wrote:
Here is version 3 of the patch set I posted on 23 April. It is revised
based on bugs I found testing with xfstests.
This is a collection of patches I've been using to address the myriad
of recovery problems I've found. I'm still finding them, so the battle
is not won yet. I'm not convinced we need all of these but I thought
I'd send them anyway and get feedback. Previously I sent out a version
of the patch "gfs2: Force withdraw to replay journals and wait for it
to finish" that was too big and complex. So I broke it up into four
patches, starting with "move check_journal_clean to util.c for future
use". So those four need to be a set. There aren't many other dependencies
between patches, so the others could probably be taken or rejected
individually. There are more patches I still need to perfect, but maybe
a few of the safer ones can be pushed to for-next.
There is quite a lot of good stuff here, but it would be good to split
it up and make it clearer what is bug fixes, and what are new features,
Steve.
Bob Peterson (19):
gfs2: kthread and remount improvements
gfs2: eliminate tr_num_revoke_rm
gfs2: log which portion of the journal is replayed
gfs2: Warn when a journal replay overwrites a rgrp with buffers
gfs2: Introduce concept of a pending withdraw
gfs2: log error reform
gfs2: Only complain the first time an io error occurs in quota or log
gfs2: Stop ail1 wait loop when withdrawn
gfs2: Ignore recovery attempts if gfs2 has io error or is withdrawn
gfs2: move check_journal_clean to util.c for future use
gfs2: Allow some glocks to be used during withdraw
gfs2: Don't loop forever in gfs2_freeze if withdrawn
gfs2: Make secondary withdrawers wait for first withdrawer
gfs2: Don't write log headers after file system withdraw
gfs2: Force withdraw to replay journals and wait for it to finish
gfs2: simply gfs2_freeze by removing case
gfs2: Add verbose option to check_journal_clean
gfs2: Check for log write errors before telling dlm to unlock
gfs2: Do log_flush in gfs2_ail_empty_gl even if ail list is empty
fs/gfs2/aops.c | 4 +-
fs/gfs2/file.c | 2 +-
fs/gfs2/glock.c | 82 +++--
fs/gfs2/glock.h | 1 +
fs/gfs2/glops.c | 100 +++--
fs/gfs2/glops.h | 3 +-
fs/gfs2/incore.h | 21 -
fs/gfs2/inode.c | 14 ++-
fs/gfs2/lock_dlm.c | 50 +++
fs/gfs2/log.c| 55 +++-
fs/gfs2/log.h| 1 +
fs/gfs2/lops.c | 27 +-
fs/gfs2/meta_io.c| 6 +-
fs/gfs2/ops_fstype.c | 65 --
fs/gfs2/quota.c | 10 ++-
fs/gfs2/recovery.c | 3 +-
fs/gfs2/super.c | 88 +++---
fs/gfs2/super.h | 1 +
fs/gfs2/sys.c| 14 ++-
fs/gfs2/trans.c | 6 +-
fs/gfs2/util.c | 206 ---
fs/gfs2/util.h | 15
22 files changed, 617 insertions(+), 157 deletions(-)