summaryrefslogtreecommitdiff
path: root/fs/gfs2/recovery.h
diff options
context:
space:
mode:
authorBob Peterson <rpeterso@redhat.com>2014-03-06 22:19:15 (GMT)
committerSteven Whitehouse <swhiteho@redhat.com>2014-03-07 09:14:48 (GMT)
commita17d758b661d6fa01a0d466d7bdda3c131bb68f9 (patch)
tree974c88f31959ab2f54483542c1b96e1fc257612b /fs/gfs2/recovery.h
parentfc554ed3d89d220b9d0c020e19aa52fb6bf1d673 (diff)
downloadlinux-a17d758b661d6fa01a0d466d7bdda3c131bb68f9.tar.xz
GFS2: Move recovery variables to journal structure in memory
If multiple nodes fail and their recovery work runs simultaneously, they would use the same unprotected variables in the superblock. For example, they would stomp on each other's revoked blocks lists, which resulted in file system metadata corruption. This patch moves the necessary variables so that each journal has its own separate area for tracking its journal replay. Signed-off-by: Bob Peterson <rpeterso@redhat.com> Signed-off-by: Steven Whitehouse <swhiteho@redhat.com>
Diffstat (limited to 'fs/gfs2/recovery.h')
-rw-r--r--fs/gfs2/recovery.h6
1 files changed, 3 insertions, 3 deletions
diff --git a/fs/gfs2/recovery.h b/fs/gfs2/recovery.h
index 2226136..6142836 100644
--- a/fs/gfs2/recovery.h
+++ b/fs/gfs2/recovery.h
@@ -23,9 +23,9 @@ static inline void gfs2_replay_incr_blk(struct gfs2_sbd *sdp, unsigned int *blk)
extern int gfs2_replay_read_block(struct gfs2_jdesc *jd, unsigned int blk,
struct buffer_head **bh);
-extern int gfs2_revoke_add(struct gfs2_sbd *sdp, u64 blkno, unsigned int where);
-extern int gfs2_revoke_check(struct gfs2_sbd *sdp, u64 blkno, unsigned int where);
-extern void gfs2_revoke_clean(struct gfs2_sbd *sdp);
+extern int gfs2_revoke_add(struct gfs2_jdesc *jd, u64 blkno, unsigned int where);
+extern int gfs2_revoke_check(struct gfs2_jdesc *jd, u64 blkno, unsigned int where);
+extern void gfs2_revoke_clean(struct gfs2_jdesc *jd);
extern int gfs2_find_jhead(struct gfs2_jdesc *jd,
struct gfs2_log_header_host *head);