1// SPDX-License-Identifier: GPL-2.0
2/*
3 * Copyright (c) 2000-2003,2005 Silicon Graphics, Inc.
4 * All Rights Reserved.
5 */
6#ifndef __XFS_RTALLOC_H__
7#define	__XFS_RTALLOC_H__
8
9/* kernel only definitions and functions */
10
11struct xfs_mount;
12struct xfs_trans;
13
14#ifdef CONFIG_XFS_RT
15/*
16 * Initialize realtime fields in the mount structure.
17 */
18int					/* error */
19xfs_rtmount_init(
20	struct xfs_mount	*mp);	/* file system mount structure */
21void
22xfs_rtunmount_inodes(
23	struct xfs_mount	*mp);
24
25/*
26 * Get the bitmap and summary inodes into the mount structure
27 * at mount time.
28 */
29int					/* error */
30xfs_rtmount_inodes(
31	struct xfs_mount	*mp);	/* file system mount structure */
32
33/*
34 * Grow the realtime area of the filesystem.
35 */
36int
37xfs_growfs_rt(
38	struct xfs_mount	*mp,	/* file system mount structure */
39	xfs_growfs_rt_t		*in);	/* user supplied growfs struct */
40
41int xfs_rtalloc_reinit_frextents(struct xfs_mount *mp);
42#else
43# define xfs_growfs_rt(mp,in)				(-ENOSYS)
44# define xfs_rtalloc_reinit_frextents(m)		(0)
45static inline int		/* error */
46xfs_rtmount_init(
47	xfs_mount_t	*mp)	/* file system mount structure */
48{
49	if (mp->m_sb.sb_rblocks == 0)
50		return 0;
51
52	xfs_warn(mp, "Not built with CONFIG_XFS_RT");
53	return -ENOSYS;
54}
55# define xfs_rtmount_inodes(m)  (((mp)->m_sb.sb_rblocks == 0)? 0 : (-ENOSYS))
56# define xfs_rtunmount_inodes(m)
57#endif	/* CONFIG_XFS_RT */
58
59#endif	/* __XFS_RTALLOC_H__ */
60