xfs: fix data corruption w/ unaligned reflink ranges
[sfrench/cifs-2.6.git] / fs / xfs / xfs_super.h
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 DEBUG
42 # define XFS_DBG_STRING         "debug"
43 #else
44 # define XFS_DBG_STRING         "no debug"
45 #endif
46
47 #define XFS_VERSION_STRING      "SGI XFS"
48 #define XFS_BUILD_OPTIONS       XFS_ACL_STRING \
49                                 XFS_SECURITY_STRING \
50                                 XFS_REALTIME_STRING \
51                                 XFS_SCRUB_STRING \
52                                 XFS_DBG_STRING /* DBG must be last */
53
54 struct xfs_inode;
55 struct xfs_mount;
56 struct xfs_buftarg;
57 struct block_device;
58
59 extern void xfs_quiesce_attr(struct xfs_mount *mp);
60 extern void xfs_flush_inodes(struct xfs_mount *mp);
61 extern void xfs_blkdev_issue_flush(struct xfs_buftarg *);
62 extern xfs_agnumber_t xfs_set_inode_alloc(struct xfs_mount *,
63                                            xfs_agnumber_t agcount);
64
65 extern const struct export_operations xfs_export_operations;
66 extern const struct xattr_handler *xfs_xattr_handlers[];
67 extern const struct quotactl_ops xfs_quotactl_operations;
68
69 extern void xfs_reinit_percpu_counters(struct xfs_mount *mp);
70
71 extern struct workqueue_struct *xfs_discard_wq;
72
73 #define XFS_M(sb)               ((struct xfs_mount *)((sb)->s_fs_info))
74
75 #endif  /* __XFS_SUPER_H__ */