xref: /linux/fs/xfs/xfs_rtalloc.h (revision 4b660dbd9ee2059850fd30e0df420ca7a38a1856)
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 
11 struct xfs_mount;
12 struct xfs_trans;
13 
14 #ifdef CONFIG_XFS_RT
15 /*
16  * Initialize realtime fields in the mount structure.
17  */
18 int					/* error */
19 xfs_rtmount_init(
20 	struct xfs_mount	*mp);	/* file system mount structure */
21 void
22 xfs_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  */
29 int					/* error */
30 xfs_rtmount_inodes(
31 	struct xfs_mount	*mp);	/* file system mount structure */
32 
33 /*
34  * Grow the realtime area of the filesystem.
35  */
36 int
37 xfs_growfs_rt(
38 	struct xfs_mount	*mp,	/* file system mount structure */
39 	xfs_growfs_rt_t		*in);	/* user supplied growfs struct */
40 
41 int 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)
45 static inline int		/* error */
46 xfs_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