From: Bob Peterson <rpeterso@redhat.com>
To: cluster-devel.redhat.com
Subject: [Cluster-devel] [PATCH 10/32] gfs2: Don't loop forever in gfs2_freeze if withdrawn
Date: Wed, 13 Nov 2019 15:30:08 -0600 [thread overview]
Message-ID: <20191113213030.237431-11-rpeterso@redhat.com> (raw)
In-Reply-To: <20191113213030.237431-1-rpeterso@redhat.com>
Before this patch, function gfs2_freeze would loop forever if the
file system trying to be frozen is withdrawn. That's because function
gfs2_lock_fs_check_clean tries to enqueue the glock of the journal
and the gfs2_glock returns -EIO because you can't enqueue a journaled
glock after a withdraw.
This patch moves the check for file system withdraw inside the loop
so that the loop can end when withdraw occurs.
Signed-off-by: Bob Peterson <rpeterso@redhat.com>
---
fs/gfs2/super.c | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/fs/gfs2/super.c b/fs/gfs2/super.c
index 478015bc6890..8154c38e488b 100644
--- a/fs/gfs2/super.c
+++ b/fs/gfs2/super.c
@@ -761,12 +761,12 @@ static int gfs2_freeze(struct super_block *sb)
if (atomic_read(&sdp->sd_freeze_state) != SFS_UNFROZEN)
goto out;
- if (gfs2_withdrawn(sdp)) {
- error = -EINVAL;
- goto out;
- }
-
for (;;) {
+ if (gfs2_withdrawn(sdp)) {
+ error = -EINVAL;
+ goto out;
+ }
+
error = gfs2_lock_fs_check_clean(sdp, &sdp->sd_freeze_gh);
if (!error)
break;
--
2.23.0
next prev parent reply other threads:[~2019-11-13 21:30 UTC|newest]
Thread overview: 37+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-11-13 21:29 [Cluster-devel] [PATCH 00/32] gfs2: misc recovery patch collection Bob Peterson
2019-11-13 21:29 ` [Cluster-devel] [PATCH 01/32] gfs2: Introduce concept of a pending withdraw Bob Peterson
2019-11-13 21:30 ` [Cluster-devel] [PATCH 02/32] gfs2: clear ail1 list when gfs2 withdraws Bob Peterson
2019-11-13 21:30 ` [Cluster-devel] [PATCH 03/32] gfs2: Rework how rgrp buffer_heads are managed Bob Peterson
2019-11-13 21:30 ` [Cluster-devel] [PATCH 04/32] gfs2: fix infinite loop in gfs2_ail1_flush on io error Bob Peterson
2019-11-13 21:30 ` [Cluster-devel] [PATCH 05/32] gfs2: log error reform Bob Peterson
2019-11-13 21:30 ` [Cluster-devel] [PATCH 06/32] gfs2: Only complain the first time an io error occurs in quota or log Bob Peterson
2019-11-13 21:30 ` [Cluster-devel] [PATCH 07/32] gfs2: Ignore dlm recovery requests if gfs2 is withdrawn Bob Peterson
2019-11-13 21:30 ` [Cluster-devel] [PATCH 08/32] gfs2: move check_journal_clean to util.c for future use Bob Peterson
2019-11-13 21:30 ` [Cluster-devel] [PATCH 09/32] gfs2: Allow some glocks to be used during withdraw Bob Peterson
2019-11-13 21:30 ` Bob Peterson [this message]
2019-11-13 21:30 ` [Cluster-devel] [PATCH 11/32] gfs2: Make secondary withdrawers wait for first withdrawer Bob Peterson
2019-11-13 21:30 ` [Cluster-devel] [PATCH 12/32] gfs2: Don't write log headers after file system withdraw Bob Peterson
2019-11-13 21:30 ` [Cluster-devel] [PATCH 13/32] gfs2: Force withdraw to replay journals and wait for it to finish Bob Peterson
2019-11-13 21:30 ` [Cluster-devel] [PATCH 14/32] gfs2: fix infinite loop when checking ail item count before go_inval Bob Peterson
2019-11-13 21:30 ` [Cluster-devel] [PATCH 15/32] gfs2: Add verbose option to check_journal_clean Bob Peterson
2019-11-13 21:30 ` [Cluster-devel] [PATCH 16/32] gfs2: Abort gfs2_freeze if io error is seen Bob Peterson
2019-11-13 21:30 ` [Cluster-devel] [PATCH 17/32] gfs2: Issue revokes more intelligently Bob Peterson
2019-11-13 21:30 ` [Cluster-devel] [PATCH 18/32] gfs2: Prepare to withdraw as soon as an IO error occurs in log write Bob Peterson
2019-11-13 21:30 ` [Cluster-devel] [PATCH 19/32] gfs2: Check for log write errors before telling dlm to unlock Bob Peterson
2019-11-13 21:30 ` [Cluster-devel] [PATCH 20/32] gfs2: new slab for transactions Bob Peterson
2019-11-13 21:30 ` [Cluster-devel] [PATCH 21/32] gfs2: Close timing window with GLF_INVALIDATE_IN_PROGRESS Bob Peterson
2019-11-13 21:30 ` [Cluster-devel] [PATCH 22/32] gfs2: Do log_flush in gfs2_ail_empty_gl even if ail list is empty Bob Peterson
2019-11-13 21:30 ` [Cluster-devel] [PATCH 23/32] gfs2: Don't skip log flush if glock still has revokes Bob Peterson
2019-11-13 21:30 ` [Cluster-devel] [PATCH 24/32] gfs2: initialize tr_ail1_list when creating transactions Bob Peterson
2019-11-13 21:30 ` [Cluster-devel] [PATCH 25/32] gfs2: Withdraw in gfs2_ail1_flush if write_cache_pages returns error Bob Peterson
2019-11-13 21:30 ` [Cluster-devel] [PATCH 26/32] gfs2: drain the ail2 list after io errors Bob Peterson
2019-11-13 21:30 ` [Cluster-devel] [PATCH 27/32] gfs2: make gfs2_log_shutdown static Bob Peterson
2019-11-13 21:30 ` [Cluster-devel] [PATCH 28/32] gfs2: Eliminate GFS2_RDF_UPTODATE flag in favor of buffer existence Bob Peterson
2019-11-14 10:42 ` Steven Whitehouse
2019-11-14 13:16 ` Bob Peterson
2019-11-13 21:30 ` [Cluster-devel] [PATCH 29/32] gfs2: if finish_open returns error, clean up iopen glock mess Bob Peterson
2019-11-13 21:30 ` [Cluster-devel] [PATCH 30/32] gfs2: Don't demote a glock until its revokes are written Bob Peterson
2019-11-14 10:45 ` Steven Whitehouse
2019-11-13 21:30 ` [Cluster-devel] [PATCH 31/32] gfs2: Do proper error checking for go_sync family of glops functions Bob Peterson
2019-11-13 21:30 ` [Cluster-devel] [PATCH 32/32] gfs2: fix glock reference problem in gfs2_trans_add_unrevoke Bob Peterson
2019-11-14 10:48 ` [Cluster-devel] [PATCH 00/32] gfs2: misc recovery patch collection Steven Whitehouse
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=20191113213030.237431-11-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).