* [Cluster-devel] [GFS2 PATCH] gfs2: clean_journal was setting sd_log_flush_head replaying other journals
[not found] <2111109334.15178965.1553528367387.JavaMail.zimbra@redhat.com>
@ 2019-03-25 15:40 ` Bob Peterson
0 siblings, 0 replies; only message in thread
From: Bob Peterson @ 2019-03-25 15:40 UTC (permalink / raw)
To: cluster-devel.redhat.com
Hi,
Function clean_journal was setting the value of sd_log_flush_head,
but that's only a valid thing to do if it is replaying its own journal.
If it's replaying another node's journal, that's completely wrong and
will lead to multiple problems.
Signed-off-by: Bob Peterson <rpeterso@redhat.com>
---
fs/gfs2/recovery.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/fs/gfs2/recovery.c b/fs/gfs2/recovery.c
index 7389e445a7a7..0595e3a2bc0a 100644
--- a/fs/gfs2/recovery.c
+++ b/fs/gfs2/recovery.c
@@ -264,8 +264,10 @@ static void clean_journal(struct gfs2_jdesc *jd,
{
struct gfs2_sbd *sdp = GFS2_SB(jd->jd_inode);
- sdp->sd_log_flush_head = head->lh_blkno;
- gfs2_replay_incr_blk(jd, &sdp->sd_log_flush_head);
+ if (jd->jd_jid == sdp->sd_lockstruct.ls_jid) {
+ sdp->sd_log_flush_head = head->lh_blkno;
+ gfs2_replay_incr_blk(jd, &sdp->sd_log_flush_head);
+ }
gfs2_write_log_header(sdp, jd, head->lh_sequence + 1, 0,
GFS2_LOG_HEAD_UNMOUNT | GFS2_LOG_HEAD_RECOVERY,
REQ_PREFLUSH | REQ_FUA | REQ_META | REQ_SYNC);
^ permalink raw reply related [flat|nested] only message in thread
only message in thread, other threads:[~2019-03-25 15:40 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <2111109334.15178965.1553528367387.JavaMail.zimbra@redhat.com>
2019-03-25 15:40 ` [Cluster-devel] [GFS2 PATCH] gfs2: clean_journal was setting sd_log_flush_head replaying other journals Bob Peterson
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).