From: Bob Peterson <rpeterso@redhat.com>
To: cluster-devel.redhat.com
Subject: [Cluster-devel] [GFS2 PATCH 00/39] GFS2: Pre-pull patch posting (merge window)
Date: Mon, 30 Mar 2020 08:45:45 -0500 [thread overview]
Message-ID: <20200330134624.259349-1-rpeterso@redhat.com> (raw)
Hi,
We've got a lot of patches (39) for this merge window. Most of these patches
are related to corruption that occurs when journals are replayed.
For example:
1. A node fails while writing to the file system.
2. Other nodes use the metadata that was once used by the failed node.
3. When the node returns to the cluster, its journal is replayed,
but the older metadata blocks overwrite the changes from step 2.
o Fixed the recovery sequence to prevent corruption during journal replay.
o Many bug fixes found during recovery testing.
o New improved file system withdraw sequence.
o Fixed how resource group buffers are managed.
o Fixed how metadata revokes are tracked and written.
o Improve processing of IO errors hit by daemons like logd and quotad.
o Improved error checking in metadata writes.
Regards,
Bob Peterson
Andreas Gruenbacher (9):
gfs2: Split gfs2_lm_withdraw into two functions
gfs2: Report errors before withdraw
gfs2: Remove usused cluster_wide arguments of gfs2_consist functions
gfs2: Turn gfs2_consist into void functions
gfs2: Return bool from gfs2_assert functions
gfs2: Clean up inode initialization and teardown
gfs2: Switch to list_{first,last}_entry
gfs2: Split gfs2_rsqa_delete into gfs2_rs_delete and gfs2_qa_put
gfs2: Remove unnecessary gfs2_qa_{get,put} pairs
Bob Peterson (30):
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: 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: Do log_flush in gfs2_ail_empty_gl even if ail list is empty
gfs2: Withdraw in gfs2_ail1_flush if write_cache_pages fails
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
gfs2: flesh out delayed withdraw for gfs2_log_flush
gfs2: don't allow releasepage to free bd still used for revokes
gfs2: allow journal replay to hold sd_log_flush_lock
gfs2: leaf_dealloc needs to allocate one more revoke
gfs2: Additional information when gfs2_ail1_flush withdraws
gfs2: eliminate gfs2_rsqa_alloc in favor of gfs2_qa_alloc
gfs2: Change inode qa_data to allow multiple users
gfs2: don't lock sd_log_flush_lock in try_rgrp_unlink
gfs2: instrumentation wrt ail1 stuck
gfs2: change from write to read lock for sd_log_flush_lock in journal
replay
gfs2: Fix oversight in gfs2_ail1_flush
fs/gfs2/acl.c | 7 +-
fs/gfs2/aops.c | 11 +-
fs/gfs2/bmap.c | 9 +-
fs/gfs2/dir.c | 3 +-
fs/gfs2/file.c | 43 ++---
fs/gfs2/glock.c | 137 +++++++++++---
fs/gfs2/glops.c | 157 +++++++++++++---
fs/gfs2/incore.h | 27 ++-
fs/gfs2/inode.c | 53 +++---
fs/gfs2/lock_dlm.c | 52 ++++++
fs/gfs2/log.c | 288 ++++++++++++++++++++---------
fs/gfs2/log.h | 1 +
fs/gfs2/lops.c | 14 +-
fs/gfs2/meta_io.c | 3 +-
fs/gfs2/ops_fstype.c | 59 ++----
fs/gfs2/quota.c | 76 ++++----
fs/gfs2/quota.h | 4 +-
fs/gfs2/recovery.c | 12 +-
fs/gfs2/rgrp.c | 88 ++++-----
fs/gfs2/rgrp.h | 4 +-
fs/gfs2/super.c | 112 ++++++++----
fs/gfs2/super.h | 1 -
fs/gfs2/sys.c | 5 +-
fs/gfs2/trans.c | 4 +
fs/gfs2/util.c | 419 +++++++++++++++++++++++++++++++++----------
fs/gfs2/util.h | 76 +++++---
fs/gfs2/xattr.c | 12 +-
27 files changed, 1168 insertions(+), 509 deletions(-)
--
2.25.1
next reply other threads:[~2020-03-30 13:45 UTC|newest]
Thread overview: 40+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-03-30 13:45 Bob Peterson [this message]
2020-03-30 13:45 ` [Cluster-devel] [GFS2 PATCH 01/39] gfs2: Split gfs2_lm_withdraw into two functions Bob Peterson
2020-03-30 13:45 ` [Cluster-devel] [GFS2 PATCH 02/39] gfs2: Report errors before withdraw Bob Peterson
2020-03-30 13:45 ` [Cluster-devel] [GFS2 PATCH 03/39] gfs2: Remove usused cluster_wide arguments of gfs2_consist functions Bob Peterson
2020-03-30 13:45 ` [Cluster-devel] [GFS2 PATCH 04/39] gfs2: Turn gfs2_consist into void functions Bob Peterson
2020-03-30 13:45 ` [Cluster-devel] [GFS2 PATCH 05/39] gfs2: Return bool from gfs2_assert functions Bob Peterson
2020-03-30 13:45 ` [Cluster-devel] [GFS2 PATCH 06/39] gfs2: Introduce concept of a pending withdraw Bob Peterson
2020-03-30 13:45 ` [Cluster-devel] [GFS2 PATCH 07/39] gfs2: clear ail1 list when gfs2 withdraws Bob Peterson
2020-03-30 13:45 ` [Cluster-devel] [GFS2 PATCH 08/39] gfs2: Rework how rgrp buffer_heads are managed Bob Peterson
2020-03-30 13:45 ` [Cluster-devel] [GFS2 PATCH 09/39] gfs2: log error reform Bob Peterson
2020-03-30 13:45 ` [Cluster-devel] [GFS2 PATCH 10/39] gfs2: Only complain the first time an io error occurs in quota or log Bob Peterson
2020-03-30 13:45 ` [Cluster-devel] [GFS2 PATCH 11/39] gfs2: Ignore dlm recovery requests if gfs2 is withdrawn Bob Peterson
2020-03-30 13:45 ` [Cluster-devel] [GFS2 PATCH 12/39] gfs2: move check_journal_clean to util.c for future use Bob Peterson
2020-03-30 13:45 ` [Cluster-devel] [GFS2 PATCH 13/39] gfs2: Allow some glocks to be used during withdraw Bob Peterson
2020-03-30 13:45 ` [Cluster-devel] [GFS2 PATCH 14/39] gfs2: Force withdraw to replay journals and wait for it to finish Bob Peterson
2020-03-30 13:46 ` [Cluster-devel] [GFS2 PATCH 15/39] gfs2: fix infinite loop when checking ail item count before go_inval Bob Peterson
2020-03-30 13:46 ` [Cluster-devel] [GFS2 PATCH 16/39] gfs2: Add verbose option to check_journal_clean Bob Peterson
2020-03-30 13:46 ` [Cluster-devel] [GFS2 PATCH 17/39] gfs2: Issue revokes more intelligently Bob Peterson
2020-03-30 13:46 ` [Cluster-devel] [GFS2 PATCH 18/39] gfs2: Prepare to withdraw as soon as an IO error occurs in log write Bob Peterson
2020-03-30 13:46 ` [Cluster-devel] [GFS2 PATCH 19/39] gfs2: Check for log write errors before telling dlm to unlock Bob Peterson
2020-03-30 13:46 ` [Cluster-devel] [GFS2 PATCH 20/39] gfs2: Do log_flush in gfs2_ail_empty_gl even if ail list is empty Bob Peterson
2020-03-30 13:46 ` [Cluster-devel] [GFS2 PATCH 21/39] gfs2: Withdraw in gfs2_ail1_flush if write_cache_pages fails Bob Peterson
2020-03-30 13:46 ` [Cluster-devel] [GFS2 PATCH 22/39] gfs2: drain the ail2 list after io errors Bob Peterson
2020-03-30 13:46 ` [Cluster-devel] [GFS2 PATCH 23/39] gfs2: Don't demote a glock until its revokes are written Bob Peterson
2020-03-30 13:46 ` [Cluster-devel] [GFS2 PATCH 24/39] gfs2: Do proper error checking for go_sync family of glops functions Bob Peterson
2020-03-30 13:46 ` [Cluster-devel] [GFS2 PATCH 25/39] gfs2: flesh out delayed withdraw for gfs2_log_flush Bob Peterson
2020-03-30 13:46 ` [Cluster-devel] [GFS2 PATCH 26/39] gfs2: don't allow releasepage to free bd still used for revokes Bob Peterson
2020-03-30 13:46 ` [Cluster-devel] [GFS2 PATCH 27/39] gfs2: allow journal replay to hold sd_log_flush_lock Bob Peterson
2020-03-30 13:46 ` [Cluster-devel] [GFS2 PATCH 28/39] gfs2: leaf_dealloc needs to allocate one more revoke Bob Peterson
2020-03-30 13:46 ` [Cluster-devel] [GFS2 PATCH 29/39] gfs2: Additional information when gfs2_ail1_flush withdraws Bob Peterson
2020-03-30 13:46 ` [Cluster-devel] [GFS2 PATCH 30/39] gfs2: Clean up inode initialization and teardown Bob Peterson
2020-03-30 13:46 ` [Cluster-devel] [GFS2 PATCH 31/39] gfs2: Switch to list_{first, last}_entry Bob Peterson
2020-03-30 13:46 ` [Cluster-devel] [GFS2 PATCH 32/39] gfs2: eliminate gfs2_rsqa_alloc in favor of gfs2_qa_alloc Bob Peterson
2020-03-30 13:46 ` [Cluster-devel] [GFS2 PATCH 33/39] gfs2: Change inode qa_data to allow multiple users Bob Peterson
2020-03-30 13:46 ` [Cluster-devel] [GFS2 PATCH 34/39] gfs2: Split gfs2_rsqa_delete into gfs2_rs_delete and gfs2_qa_put Bob Peterson
2020-03-30 13:46 ` [Cluster-devel] [GFS2 PATCH 35/39] gfs2: Remove unnecessary gfs2_qa_{get, put} pairs Bob Peterson
2020-03-30 13:46 ` [Cluster-devel] [GFS2 PATCH 36/39] gfs2: don't lock sd_log_flush_lock in try_rgrp_unlink Bob Peterson
2020-03-30 13:46 ` [Cluster-devel] [GFS2 PATCH 37/39] gfs2: instrumentation wrt ail1 stuck Bob Peterson
2020-03-30 13:46 ` [Cluster-devel] [GFS2 PATCH 38/39] gfs2: change from write to read lock for sd_log_flush_lock in journal replay Bob Peterson
2020-03-30 13:46 ` [Cluster-devel] [GFS2 PATCH 39/39] gfs2: Fix oversight in gfs2_ail1_flush Bob Peterson
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=20200330134624.259349-1-rpeterso@redhat.com \
--to=rpeterso@redhat.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;
as well as URLs for NNTP newsgroup(s).