1 // SPDX-License-Identifier: GPL-2.0
2 /*
3  * Copyright (c) 2000-2005 Silicon Graphics, Inc.
4  * All Rights Reserved.
5  */
6 #ifndef __XFS_SUPER_H__
7 #define __XFS_SUPER_H__
8 
9 #include <linux/exportfs.h>
10 
11 #ifdef CONFIG_XFS_QUOTA
12 extern int xfs_qm_init(void);
13 extern void xfs_qm_exit(void);
14 #else
15 # define xfs_qm_init()	(0)
16 # define xfs_qm_exit()	do { } while (0)
17 #endif
18 
19 #ifdef CONFIG_XFS_POSIX_ACL
20 # define XFS_ACL_STRING		"ACLs, "
21 # define set_posix_acl_flag(sb)	((sb)->s_flags |= SB_POSIXACL)
22 #else
23 # define XFS_ACL_STRING
24 # define set_posix_acl_flag(sb)	do { } while (0)
25 #endif
26 
27 #define XFS_SECURITY_STRING	"security attributes, "
28 
29 #ifdef CONFIG_XFS_RT
30 # define XFS_REALTIME_STRING	"realtime, "
31 #else
32 # define XFS_REALTIME_STRING
33 #endif
34 
35 #ifdef CONFIG_XFS_ONLINE_SCRUB
36 # define XFS_SCRUB_STRING	"scrub, "
37 #else
38 # define XFS_SCRUB_STRING
39 #endif
40 
41 #ifdef CONFIG_XFS_ONLINE_REPAIR
42 # define XFS_REPAIR_STRING	"repair, "
43 #else
44 # define XFS_REPAIR_STRING
45 #endif
46 
47 #ifdef CONFIG_XFS_WARN
48 # define XFS_WARN_STRING	"verbose warnings, "
49 #else
50 # define XFS_WARN_STRING
51 #endif
52 
53 #ifdef DEBUG
54 # define XFS_DBG_STRING		"debug"
55 #else
56 # define XFS_DBG_STRING		"no debug"
57 #endif
58 
59 #define XFS_VERSION_STRING	"SGI XFS"
60 #define XFS_BUILD_OPTIONS	XFS_ACL_STRING \
61 				XFS_SECURITY_STRING \
62 				XFS_REALTIME_STRING \
63 				XFS_SCRUB_STRING \
64 				XFS_REPAIR_STRING \
65 				XFS_WARN_STRING \
66 				XFS_DBG_STRING /* DBG must be last */
67 
68 struct xfs_inode;
69 struct xfs_mount;
70 struct xfs_buftarg;
71 struct block_device;
72 
73 extern void xfs_quiesce_attr(struct xfs_mount *mp);
74 extern void xfs_flush_inodes(struct xfs_mount *mp);
75 extern void xfs_blkdev_issue_flush(struct xfs_buftarg *);
76 extern xfs_agnumber_t xfs_set_inode_alloc(struct xfs_mount *,
77 					   xfs_agnumber_t agcount);
78 
79 extern const struct export_operations xfs_export_operations;
80 extern const struct xattr_handler *xfs_xattr_handlers[];
81 extern const struct quotactl_ops xfs_quotactl_operations;
82 
83 extern void xfs_reinit_percpu_counters(struct xfs_mount *mp);
84 
85 extern struct workqueue_struct *xfs_discard_wq;
86 
87 #define XFS_M(sb)		((struct xfs_mount *)((sb)->s_fs_info))
88 
89 #endif	/* __XFS_SUPER_H__ */
90