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