GNU Linux-libre 6.8.9-gnu
[releases.git] / fs / xfs / xfs_rtalloc.h
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__ */