Linux-libre 4.19.8-gnu
[librecmc/linux-libre.git] / fs / xfs / libxfs / xfs_ag.h
1 /* SPDX-License-Identifier: GPL-2.0 */
2 /*
3  * Copyright (c) 2018 Red Hat, Inc.
4  * All rights reserved.
5  */
6
7 #ifndef __LIBXFS_AG_H
8 #define __LIBXFS_AG_H 1
9
10 struct xfs_mount;
11 struct xfs_trans;
12
13 struct aghdr_init_data {
14         /* per ag data */
15         xfs_agblock_t           agno;           /* ag to init */
16         xfs_extlen_t            agsize;         /* new AG size */
17         struct list_head        buffer_list;    /* buffer writeback list */
18         xfs_rfsblock_t          nfree;          /* cumulative new free space */
19
20         /* per header data */
21         xfs_daddr_t             daddr;          /* header location */
22         size_t                  numblks;        /* size of header */
23         xfs_btnum_t             type;           /* type of btree root block */
24 };
25
26 int xfs_ag_init_headers(struct xfs_mount *mp, struct aghdr_init_data *id);
27 int xfs_ag_extend_space(struct xfs_mount *mp, struct xfs_trans *tp,
28                         struct aghdr_init_data *id, xfs_extlen_t len);
29
30 #endif /* __LIBXFS_AG_H */