| // SPDX-License-Identifier: GPL-2.0 | |
| /* | |
| * Copyright (c) 2000-2003,2005 Silicon Graphics, Inc. | |
| * All Rights Reserved. | |
| */ | |
| #ifndef __XFS_RTALLOC_H__ | |
| #define __XFS_RTALLOC_H__ | |
| /* kernel only definitions and functions */ | |
| struct xfs_mount; | |
| struct xfs_trans; | |
| #ifdef CONFIG_XFS_RT | |
| /* rtgroup superblock initialization */ | |
| int xfs_rtmount_readsb(struct xfs_mount *mp); | |
| void xfs_rtmount_freesb(struct xfs_mount *mp); | |
| /* | |
| * Initialize realtime fields in the mount structure. | |
| */ | |
| int /* error */ | |
| xfs_rtmount_init( | |
| struct xfs_mount *mp); /* file system mount structure */ | |
| void | |
| xfs_rtunmount_inodes( | |
| struct xfs_mount *mp); | |
| /* | |
| * Get the bitmap and summary inodes into the mount structure | |
| * at mount time. | |
| */ | |
| int /* error */ | |
| xfs_rtmount_inodes( | |
| struct xfs_mount *mp); /* file system mount structure */ | |
| /* | |
| * Grow the realtime area of the filesystem. | |
| */ | |
| int | |
| xfs_growfs_rt( | |
| struct xfs_mount *mp, /* file system mount structure */ | |
| xfs_growfs_rt_t *in); /* user supplied growfs struct */ | |
| int xfs_rtalloc_reinit_frextents(struct xfs_mount *mp); | |
| int xfs_growfs_check_rtgeom(const struct xfs_mount *mp, xfs_rfsblock_t dblocks, | |
| xfs_rfsblock_t rblocks, xfs_agblock_t rextsize); | |
| #else | |
| # define xfs_growfs_rt(mp,in) (-ENOSYS) | |
| # define xfs_rtalloc_reinit_frextents(m) (0) | |
| # define xfs_rtmount_readsb(mp) (0) | |
| # define xfs_rtmount_freesb(mp) ((void)0) | |
| static inline int /* error */ | |
| xfs_rtmount_init( | |
| xfs_mount_t *mp) /* file system mount structure */ | |
| { | |
| if (mp->m_sb.sb_rblocks == 0) | |
| return 0; | |
| xfs_warn(mp, "Not built with CONFIG_XFS_RT"); | |
| return -ENOSYS; | |
| } | |
| # define xfs_rtmount_inodes(m) (((mp)->m_sb.sb_rblocks == 0)? 0 : (-ENOSYS)) | |
| # define xfs_rtunmount_inodes(m) | |
| static inline int | |
| xfs_growfs_check_rtgeom(const struct xfs_mount *mp, | |
| xfs_rfsblock_t dblocks, xfs_rfsblock_t rblocks, | |
| xfs_extlen_t rextsize) | |
| { | |
| return 0; | |
| } | |
| #endif /* CONFIG_XFS_RT */ | |
| int xfs_rtallocate_rtgs(struct xfs_trans *tp, xfs_fsblock_t bno_hint, | |
| xfs_rtxlen_t minlen, xfs_rtxlen_t maxlen, xfs_rtxlen_t prod, | |
| bool wasdel, bool initial_user_data, xfs_rtblock_t *bno, | |
| xfs_extlen_t *blen); | |
| #endif /* __XFS_RTALLOC_H__ */ |