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