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 # define XFS_QUOTA_STRING "quota, " 15 #else 16 # define xfs_qm_init() (0) 17 # define xfs_qm_exit() do { } while (0) 18 # define XFS_QUOTA_STRING 19 #endif 20 21 #ifdef CONFIG_XFS_POSIX_ACL 22 # define XFS_ACL_STRING "ACLs, " 23 # define set_posix_acl_flag(sb) ((sb)->s_flags |= SB_POSIXACL) 24 #else 25 # define XFS_ACL_STRING 26 # define set_posix_acl_flag(sb) do { } while (0) 27 #endif 28 29 #define XFS_SECURITY_STRING "security attributes, " 30 31 #ifdef CONFIG_XFS_RT 32 # define XFS_REALTIME_STRING "realtime, " 33 #else 34 # define XFS_REALTIME_STRING 35 #endif 36 37 #ifdef CONFIG_XFS_ONLINE_SCRUB 38 # define XFS_SCRUB_STRING "scrub, " 39 #else 40 # define XFS_SCRUB_STRING 41 #endif 42 43 #ifdef CONFIG_XFS_ONLINE_REPAIR 44 # define XFS_REPAIR_STRING "repair, " 45 #else 46 # define XFS_REPAIR_STRING 47 #endif 48 49 #ifdef CONFIG_XFS_WARN 50 # define XFS_WARN_STRING "verbose warnings, " 51 #else 52 # define XFS_WARN_STRING 53 #endif 54 55 #ifdef CONFIG_XFS_ASSERT_FATAL 56 # define XFS_ASSERT_FATAL_STRING "fatal assert, " 57 #else 58 # define XFS_ASSERT_FATAL_STRING 59 #endif 60 61 #ifdef DEBUG 62 # define XFS_DBG_STRING "debug" 63 #else 64 # define XFS_DBG_STRING "no debug" 65 #endif 66 67 #define XFS_VERSION_STRING "SGI XFS" 68 #define XFS_BUILD_OPTIONS XFS_ACL_STRING \ 69 XFS_SECURITY_STRING \ 70 XFS_REALTIME_STRING \ 71 XFS_SCRUB_STRING \ 72 XFS_REPAIR_STRING \ 73 XFS_WARN_STRING \ 74 XFS_QUOTA_STRING \ 75 XFS_ASSERT_FATAL_STRING \ 76 XFS_DBG_STRING /* DBG must be last */ 77 78 #ifdef DEBUG 79 # define XFS_WQFLAGS(wqflags) (WQ_SYSFS | (wqflags)) 80 #else 81 # define XFS_WQFLAGS(wqflags) (wqflags) 82 #endif 83 84 struct xfs_inode; 85 struct xfs_mount; 86 struct xfs_buftarg; 87 struct block_device; 88 89 extern void xfs_flush_inodes(struct xfs_mount *mp); 90 extern xfs_agnumber_t xfs_set_inode_alloc(struct xfs_mount *, 91 xfs_agnumber_t agcount); 92 93 extern const struct export_operations xfs_export_operations; 94 extern const struct quotactl_ops xfs_quotactl_operations; 95 extern const struct dax_holder_operations xfs_dax_holder_operations; 96 97 extern void xfs_reinit_percpu_counters(struct xfs_mount *mp); 98 99 extern struct workqueue_struct *xfs_discard_wq; 100 101 #define XFS_M(sb) ((struct xfs_mount *)((sb)->s_fs_info)) 102 103 struct dentry *xfs_debugfs_mkdir(const char *name, struct dentry *parent); 104 105 #endif /* __XFS_SUPER_H__ */ 106