Merge tag 'fuse-fixes-5.6-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/mszer...
[linux-2.6-block.git] / fs / gfs2 / trans.h
CommitLineData
7336d0e6 1/* SPDX-License-Identifier: GPL-2.0-only */
b3b94faa
DT
2/*
3 * Copyright (C) Sistina Software, Inc. 1997-2003 All rights reserved.
3a8a9a10 4 * Copyright (C) 2004-2006 Red Hat, Inc. All rights reserved.
b3b94faa
DT
5 */
6
7#ifndef __TRANS_DOT_H__
8#define __TRANS_DOT_H__
9
f2f7ba52
SW
10#include <linux/buffer_head.h>
11struct gfs2_sbd;
12struct gfs2_rgrpd;
13struct gfs2_glock;
14
b3b94faa
DT
15#define RES_DINODE 1
16#define RES_INDIRECT 1
17#define RES_JDATA 1
18#define RES_DATA 1
19#define RES_LEAF 1
3921120e 20#define RES_RG_HDR 1
b3b94faa
DT
21#define RES_RG_BIT 2
22#define RES_EATTR 1
b3b94faa
DT
23#define RES_STATFS 1
24#define RES_QUOTA 2
25
bf97b673
BM
26/* reserve either the number of blocks to be allocated plus the rg header
27 * block, or all of the blocks in the rg, whichever is smaller */
71f890f7 28static inline unsigned int gfs2_rg_blocks(const struct gfs2_inode *ip, unsigned requested)
bf97b673 29{
b7eba890
AG
30 struct gfs2_rgrpd *rgd = ip->i_res.rs_rbm.rgd;
31
32 if (requested < rgd->rd_length)
71f890f7 33 return requested + 1;
b7eba890 34 return rgd->rd_length;
bf97b673
BM
35}
36
7c9ca621
BP
37extern int gfs2_trans_begin(struct gfs2_sbd *sdp, unsigned int blocks,
38 unsigned int revokes);
b3b94faa 39
7c9ca621 40extern void gfs2_trans_end(struct gfs2_sbd *sdp);
350a9b0a
SW
41extern void gfs2_trans_add_data(struct gfs2_glock *gl, struct buffer_head *bh);
42extern void gfs2_trans_add_meta(struct gfs2_glock *gl, struct buffer_head *bh);
7c9ca621 43extern void gfs2_trans_add_revoke(struct gfs2_sbd *sdp, struct gfs2_bufdata *bd);
fbb27873 44extern void gfs2_trans_remove_revoke(struct gfs2_sbd *sdp, u64 blkno, unsigned int len);
b3b94faa
DT
45
46#endif /* __TRANS_DOT_H__ */