mirror of
https://github.com/torvalds/linux.git
synced 2024-12-23 03:11:46 +00:00
9bbafc7191
They are AG functions, not superblock functions, so move them to the appropriate location. Signed-off-by: Dave Chinner <dchinner@redhat.com> Reviewed-by: Brian Foster <bfoster@redhat.com> Reviewed-by: Darrick J. Wong <djwong@kernel.org>
45 lines
1.3 KiB
C
45 lines
1.3 KiB
C
/* SPDX-License-Identifier: GPL-2.0 */
|
|
/*
|
|
* Copyright (c) 2018 Red Hat, Inc.
|
|
* All rights reserved.
|
|
*/
|
|
|
|
#ifndef __LIBXFS_AG_H
|
|
#define __LIBXFS_AG_H 1
|
|
|
|
struct xfs_mount;
|
|
struct xfs_trans;
|
|
struct xfs_perag;
|
|
|
|
/*
|
|
* perag get/put wrappers for ref counting
|
|
*/
|
|
int xfs_initialize_perag_data(struct xfs_mount *, xfs_agnumber_t);
|
|
struct xfs_perag *xfs_perag_get(struct xfs_mount *, xfs_agnumber_t);
|
|
struct xfs_perag *xfs_perag_get_tag(struct xfs_mount *, xfs_agnumber_t,
|
|
int tag);
|
|
void xfs_perag_put(struct xfs_perag *pag);
|
|
|
|
struct aghdr_init_data {
|
|
/* per ag data */
|
|
xfs_agblock_t agno; /* ag to init */
|
|
xfs_extlen_t agsize; /* new AG size */
|
|
struct list_head buffer_list; /* buffer writeback list */
|
|
xfs_rfsblock_t nfree; /* cumulative new free space */
|
|
|
|
/* per header data */
|
|
xfs_daddr_t daddr; /* header location */
|
|
size_t numblks; /* size of header */
|
|
xfs_btnum_t type; /* type of btree root block */
|
|
};
|
|
|
|
int xfs_ag_init_headers(struct xfs_mount *mp, struct aghdr_init_data *id);
|
|
int xfs_ag_shrink_space(struct xfs_mount *mp, struct xfs_trans **tpp,
|
|
xfs_agnumber_t agno, xfs_extlen_t delta);
|
|
int xfs_ag_extend_space(struct xfs_mount *mp, struct xfs_trans *tp,
|
|
struct aghdr_init_data *id, xfs_extlen_t len);
|
|
int xfs_ag_get_geometry(struct xfs_mount *mp, xfs_agnumber_t agno,
|
|
struct xfs_ag_geometry *ageo);
|
|
|
|
#endif /* __LIBXFS_AG_H */
|