root/fs/gfs2/trans.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


DEFINITIONS

This source file includes following definitions.
  1. gfs2_rg_blocks

   1 /* SPDX-License-Identifier: GPL-2.0-only */
   2 /*
   3  * Copyright (C) Sistina Software, Inc.  1997-2003 All rights reserved.
   4  * Copyright (C) 2004-2006 Red Hat, Inc.  All rights reserved.
   5  */
   6 
   7 #ifndef __TRANS_DOT_H__
   8 #define __TRANS_DOT_H__
   9 
  10 #include <linux/buffer_head.h>
  11 struct gfs2_sbd;
  12 struct gfs2_rgrpd;
  13 struct gfs2_glock;
  14 
  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
  20 #define RES_RG_HDR      1
  21 #define RES_RG_BIT      2
  22 #define RES_EATTR       1
  23 #define RES_STATFS      1
  24 #define RES_QUOTA       2
  25 
  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 */
  28 static inline unsigned int gfs2_rg_blocks(const struct gfs2_inode *ip, unsigned requested)
  29 {
  30         struct gfs2_rgrpd *rgd = ip->i_res.rs_rbm.rgd;
  31 
  32         if (requested < rgd->rd_length)
  33                 return requested + 1;
  34         return rgd->rd_length;
  35 }
  36 
  37 extern int gfs2_trans_begin(struct gfs2_sbd *sdp, unsigned int blocks,
  38                             unsigned int revokes);
  39 
  40 extern void gfs2_trans_end(struct gfs2_sbd *sdp);
  41 extern void gfs2_trans_add_data(struct gfs2_glock *gl, struct buffer_head *bh);
  42 extern void gfs2_trans_add_meta(struct gfs2_glock *gl, struct buffer_head *bh);
  43 extern void gfs2_trans_add_revoke(struct gfs2_sbd *sdp, struct gfs2_bufdata *bd);
  44 extern void gfs2_trans_remove_revoke(struct gfs2_sbd *sdp, u64 blkno, unsigned int len);
  45 
  46 #endif /* __TRANS_DOT_H__ */

/* [<][>][^][v][top][bottom][index][help] */