37 lines · c
1/* SPDX-License-Identifier: GPL-2.0+ */2/*3 * Copyright (C) 2016 Oracle. All Rights Reserved.4 * Author: Darrick J. Wong <darrick.wong@oracle.com>5 */6#ifndef __XFS_AG_RESV_H__7#define __XFS_AG_RESV_H__8 9void xfs_ag_resv_free(struct xfs_perag *pag);10int xfs_ag_resv_init(struct xfs_perag *pag, struct xfs_trans *tp);11 12bool xfs_ag_resv_critical(struct xfs_perag *pag, enum xfs_ag_resv_type type);13xfs_extlen_t xfs_ag_resv_needed(struct xfs_perag *pag,14 enum xfs_ag_resv_type type);15 16void xfs_ag_resv_alloc_extent(struct xfs_perag *pag, enum xfs_ag_resv_type type,17 struct xfs_alloc_arg *args);18void xfs_ag_resv_free_extent(struct xfs_perag *pag, enum xfs_ag_resv_type type,19 struct xfs_trans *tp, xfs_extlen_t len);20 21static inline struct xfs_ag_resv *22xfs_perag_resv(23 struct xfs_perag *pag,24 enum xfs_ag_resv_type type)25{26 switch (type) {27 case XFS_AG_RESV_METADATA:28 return &pag->pag_meta_resv;29 case XFS_AG_RESV_RMAPBT:30 return &pag->pag_rmapbt_resv;31 default:32 return NULL;33 }34}35 36#endif /* __XFS_AG_RESV_H__ */37