7336d0e654f7a (Thomas Gleixner 2019-05-31 01:09:56 -0700 1) /* SPDX-License-Identifier: GPL-2.0-only */
b3b94faa5fe59 (David Teigland 2006-01-16 16:50:04 +0000 2) /*
b3b94faa5fe59 (David Teigland 2006-01-16 16:50:04 +0000 3) * Copyright (C) Sistina Software, Inc. 1997-2003 All rights reserved.
3a8a9a1034813 (Steven Whitehouse 2006-05-18 15:09:15 -0400 4) * Copyright (C) 2004-2006 Red Hat, Inc. All rights reserved.
b3b94faa5fe59 (David Teigland 2006-01-16 16:50:04 +0000 5) */
b3b94faa5fe59 (David Teigland 2006-01-16 16:50:04 +0000 6)
b3b94faa5fe59 (David Teigland 2006-01-16 16:50:04 +0000 7) #ifndef __RECOVERY_DOT_H__
b3b94faa5fe59 (David Teigland 2006-01-16 16:50:04 +0000 8) #define __RECOVERY_DOT_H__
b3b94faa5fe59 (David Teigland 2006-01-16 16:50:04 +0000 9)
f2f7ba5237e2f (Steven Whitehouse 2006-09-05 10:39:21 -0400 10) #include "incore.h"
f2f7ba5237e2f (Steven Whitehouse 2006-09-05 10:39:21 -0400 11)
6ecd7c2dd9f5d (Tejun Heo 2010-07-20 22:09:02 +0200 12) extern struct workqueue_struct *gfs_recovery_wq;
6ecd7c2dd9f5d (Tejun Heo 2010-07-20 22:09:02 +0200 13)
7c70b896951c8 (Bob Peterson 2019-03-25 09:34:19 -0600 14) static inline void gfs2_replay_incr_blk(struct gfs2_jdesc *jd, u32 *blk)
b3b94faa5fe59 (David Teigland 2006-01-16 16:50:04 +0000 15) {
e1cb6be9e142e (Bob Peterson 2016-07-21 13:02:44 -0500 16) if (++*blk == jd->jd_blocks)
b3b94faa5fe59 (David Teigland 2006-01-16 16:50:04 +0000 17) *blk = 0;
b3b94faa5fe59 (David Teigland 2006-01-16 16:50:04 +0000 18) }
b3b94faa5fe59 (David Teigland 2006-01-16 16:50:04 +0000 19)
9ac1b4d9b6f88 (Steven Whitehouse 2008-11-19 10:08:22 +0000 20) extern int gfs2_replay_read_block(struct gfs2_jdesc *jd, unsigned int blk,
b3b94faa5fe59 (David Teigland 2006-01-16 16:50:04 +0000 21) struct buffer_head **bh);
b3b94faa5fe59 (David Teigland 2006-01-16 16:50:04 +0000 22)
a17d758b661d6 (Bob Peterson 2014-03-06 17:19:15 -0500 23) extern int gfs2_revoke_add(struct gfs2_jdesc *jd, u64 blkno, unsigned int where);
a17d758b661d6 (Bob Peterson 2014-03-06 17:19:15 -0500 24) extern int gfs2_revoke_check(struct gfs2_jdesc *jd, u64 blkno, unsigned int where);
a17d758b661d6 (Bob Peterson 2014-03-06 17:19:15 -0500 25) extern void gfs2_revoke_clean(struct gfs2_jdesc *jd);
b3b94faa5fe59 (David Teigland 2006-01-16 16:50:04 +0000 26)
6ecd7c2dd9f5d (Tejun Heo 2010-07-20 22:09:02 +0200 27) extern int gfs2_recover_journal(struct gfs2_jdesc *gfs2_jd, bool wait);
6ecd7c2dd9f5d (Tejun Heo 2010-07-20 22:09:02 +0200 28) extern void gfs2_recover_func(struct work_struct *work);
40e0e61e366be (Abhi Das 2018-11-09 09:54:18 -0600 29) extern int __get_log_header(struct gfs2_sbd *sdp,
40e0e61e366be (Abhi Das 2018-11-09 09:54:18 -0600 30) const struct gfs2_log_header *lh, unsigned int blkno,
40e0e61e366be (Abhi Das 2018-11-09 09:54:18 -0600 31) struct gfs2_log_header_host *head);
b3b94faa5fe59 (David Teigland 2006-01-16 16:50:04 +0000 32)
b3b94faa5fe59 (David Teigland 2006-01-16 16:50:04 +0000 33) #endif /* __RECOVERY_DOT_H__ */
b3b94faa5fe59 (David Teigland 2006-01-16 16:50:04 +0000 34)