| .. | .. |
|---|
| 1 | +/* SPDX-License-Identifier: GPL-2.0-only */ |
|---|
| 1 | 2 | /* |
|---|
| 2 | 3 | * Copyright (C) Sistina Software, Inc. 1997-2003 All rights reserved. |
|---|
| 3 | 4 | * Copyright (C) 2004-2008 Red Hat, Inc. All rights reserved. |
|---|
| 4 | | - * |
|---|
| 5 | | - * This copyrighted material is made available to anyone wishing to use, |
|---|
| 6 | | - * modify, copy, or redistribute it subject to the terms and conditions |
|---|
| 7 | | - * of the GNU General Public License version 2. |
|---|
| 8 | 5 | */ |
|---|
| 9 | 6 | |
|---|
| 10 | 7 | #ifndef __RGRP_DOT_H__ |
|---|
| .. | .. |
|---|
| 18 | 15 | * By reserving 32 blocks at a time, we can optimize / shortcut how we search |
|---|
| 19 | 16 | * through the bitmaps by looking a word at a time. |
|---|
| 20 | 17 | */ |
|---|
| 21 | | -#define RGRP_RSRV_MINBYTES 8 |
|---|
| 22 | | -#define RGRP_RSRV_MINBLKS ((u32)(RGRP_RSRV_MINBYTES * GFS2_NBBY)) |
|---|
| 18 | +#define RGRP_RSRV_MINBLKS 32 |
|---|
| 23 | 19 | #define RGRP_RSRV_ADDBLKS 64 |
|---|
| 24 | 20 | |
|---|
| 25 | 21 | struct gfs2_rgrpd; |
|---|
| .. | .. |
|---|
| 37 | 33 | extern void gfs2_free_clones(struct gfs2_rgrpd *rgd); |
|---|
| 38 | 34 | extern int gfs2_rgrp_go_lock(struct gfs2_holder *gh); |
|---|
| 39 | 35 | extern void gfs2_rgrp_brelse(struct gfs2_rgrpd *rgd); |
|---|
| 40 | | -extern void gfs2_rgrp_go_unlock(struct gfs2_holder *gh); |
|---|
| 41 | 36 | |
|---|
| 42 | 37 | extern struct gfs2_alloc *gfs2_alloc_get(struct gfs2_inode *ip); |
|---|
| 43 | 38 | |
|---|
| .. | .. |
|---|
| 49 | 44 | extern int gfs2_alloc_blocks(struct gfs2_inode *ip, u64 *bn, unsigned int *n, |
|---|
| 50 | 45 | bool dinode, u64 *generation); |
|---|
| 51 | 46 | |
|---|
| 52 | | -extern int gfs2_rsqa_alloc(struct gfs2_inode *ip); |
|---|
| 53 | 47 | extern void gfs2_rs_deltree(struct gfs2_blkreserv *rs); |
|---|
| 54 | | -extern void gfs2_rsqa_delete(struct gfs2_inode *ip, atomic_t *wcount); |
|---|
| 55 | | -extern void __gfs2_free_blocks(struct gfs2_inode *ip, u64 bstart, u32 blen, int meta); |
|---|
| 56 | | -extern void gfs2_free_meta(struct gfs2_inode *ip, u64 bstart, u32 blen); |
|---|
| 48 | +extern void gfs2_rs_delete(struct gfs2_inode *ip); |
|---|
| 49 | +extern void __gfs2_free_blocks(struct gfs2_inode *ip, struct gfs2_rgrpd *rgd, |
|---|
| 50 | + u64 bstart, u32 blen, int meta); |
|---|
| 51 | +extern void gfs2_free_meta(struct gfs2_inode *ip, struct gfs2_rgrpd *rgd, |
|---|
| 52 | + u64 bstart, u32 blen); |
|---|
| 57 | 53 | extern void gfs2_free_di(struct gfs2_rgrpd *rgd, struct gfs2_inode *ip); |
|---|
| 58 | 54 | extern void gfs2_unlink_di(struct inode *inode); |
|---|
| 59 | 55 | extern int gfs2_check_blk_type(struct gfs2_sbd *sdp, u64 no_addr, |
|---|
| .. | .. |
|---|
| 68 | 64 | |
|---|
| 69 | 65 | extern void gfs2_rlist_add(struct gfs2_inode *ip, struct gfs2_rgrp_list *rlist, |
|---|
| 70 | 66 | u64 block); |
|---|
| 71 | | -extern void gfs2_rlist_alloc(struct gfs2_rgrp_list *rlist, unsigned int state); |
|---|
| 67 | +extern void gfs2_rlist_alloc(struct gfs2_rgrp_list *rlist); |
|---|
| 72 | 68 | extern void gfs2_rlist_free(struct gfs2_rgrp_list *rlist); |
|---|
| 73 | 69 | extern u64 gfs2_ri_total(struct gfs2_sbd *sdp); |
|---|
| 74 | | -extern void gfs2_rgrp_dump(struct seq_file *seq, const struct gfs2_glock *gl); |
|---|
| 70 | +extern void gfs2_rgrp_dump(struct seq_file *seq, struct gfs2_rgrpd *rgd, |
|---|
| 71 | + const char *fs_id_buf); |
|---|
| 75 | 72 | extern int gfs2_rgrp_send_discards(struct gfs2_sbd *sdp, u64 offset, |
|---|
| 76 | 73 | struct buffer_head *bh, |
|---|
| 77 | 74 | const struct gfs2_bitmap *bi, unsigned minlen, u64 *ptrimmed); |
|---|