xref: /OK3568_Linux_fs/kernel/fs/gfs2/recovery.h (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun /* SPDX-License-Identifier: GPL-2.0-only */
2*4882a593Smuzhiyun /*
3*4882a593Smuzhiyun  * Copyright (C) Sistina Software, Inc.  1997-2003 All rights reserved.
4*4882a593Smuzhiyun  * Copyright (C) 2004-2006 Red Hat, Inc.  All rights reserved.
5*4882a593Smuzhiyun  */
6*4882a593Smuzhiyun 
7*4882a593Smuzhiyun #ifndef __RECOVERY_DOT_H__
8*4882a593Smuzhiyun #define __RECOVERY_DOT_H__
9*4882a593Smuzhiyun 
10*4882a593Smuzhiyun #include "incore.h"
11*4882a593Smuzhiyun 
12*4882a593Smuzhiyun extern struct workqueue_struct *gfs_recovery_wq;
13*4882a593Smuzhiyun 
gfs2_replay_incr_blk(struct gfs2_jdesc * jd,u32 * blk)14*4882a593Smuzhiyun static inline void gfs2_replay_incr_blk(struct gfs2_jdesc *jd, u32 *blk)
15*4882a593Smuzhiyun {
16*4882a593Smuzhiyun 	if (++*blk == jd->jd_blocks)
17*4882a593Smuzhiyun 	        *blk = 0;
18*4882a593Smuzhiyun }
19*4882a593Smuzhiyun 
20*4882a593Smuzhiyun extern int gfs2_replay_read_block(struct gfs2_jdesc *jd, unsigned int blk,
21*4882a593Smuzhiyun 			   struct buffer_head **bh);
22*4882a593Smuzhiyun 
23*4882a593Smuzhiyun extern int gfs2_revoke_add(struct gfs2_jdesc *jd, u64 blkno, unsigned int where);
24*4882a593Smuzhiyun extern int gfs2_revoke_check(struct gfs2_jdesc *jd, u64 blkno, unsigned int where);
25*4882a593Smuzhiyun extern void gfs2_revoke_clean(struct gfs2_jdesc *jd);
26*4882a593Smuzhiyun 
27*4882a593Smuzhiyun extern int gfs2_recover_journal(struct gfs2_jdesc *gfs2_jd, bool wait);
28*4882a593Smuzhiyun extern void gfs2_recover_func(struct work_struct *work);
29*4882a593Smuzhiyun extern int __get_log_header(struct gfs2_sbd *sdp,
30*4882a593Smuzhiyun 			    const struct gfs2_log_header *lh, unsigned int blkno,
31*4882a593Smuzhiyun 			    struct gfs2_log_header_host *head);
32*4882a593Smuzhiyun 
33*4882a593Smuzhiyun #endif /* __RECOVERY_DOT_H__ */
34*4882a593Smuzhiyun 
35