xref: /OK3568_Linux_fs/kernel/fs/xfs/Kconfig (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun# SPDX-License-Identifier: GPL-2.0-only
2*4882a593Smuzhiyunconfig XFS_FS
3*4882a593Smuzhiyun	tristate "XFS filesystem support"
4*4882a593Smuzhiyun	depends on BLOCK
5*4882a593Smuzhiyun	select EXPORTFS
6*4882a593Smuzhiyun	select LIBCRC32C
7*4882a593Smuzhiyun	select FS_IOMAP
8*4882a593Smuzhiyun	help
9*4882a593Smuzhiyun	  XFS is a high performance journaling filesystem which originated
10*4882a593Smuzhiyun	  on the SGI IRIX platform.  It is completely multi-threaded, can
11*4882a593Smuzhiyun	  support large files and large filesystems, extended attributes,
12*4882a593Smuzhiyun	  variable block sizes, is extent based, and makes extensive use of
13*4882a593Smuzhiyun	  Btrees (directories, extents, free space) to aid both performance
14*4882a593Smuzhiyun	  and scalability.
15*4882a593Smuzhiyun
16*4882a593Smuzhiyun	  Refer to the documentation at <http://oss.sgi.com/projects/xfs/>
17*4882a593Smuzhiyun	  for complete details.  This implementation is on-disk compatible
18*4882a593Smuzhiyun	  with the IRIX version of XFS.
19*4882a593Smuzhiyun
20*4882a593Smuzhiyun	  To compile this file system support as a module, choose M here: the
21*4882a593Smuzhiyun	  module will be called xfs.  Be aware, however, that if the file
22*4882a593Smuzhiyun	  system of your root partition is compiled as a module, you'll need
23*4882a593Smuzhiyun	  to use an initial ramdisk (initrd) to boot.
24*4882a593Smuzhiyun
25*4882a593Smuzhiyunconfig XFS_SUPPORT_V4
26*4882a593Smuzhiyun	bool "Support deprecated V4 (crc=0) format"
27*4882a593Smuzhiyun	depends on XFS_FS
28*4882a593Smuzhiyun	default y
29*4882a593Smuzhiyun	help
30*4882a593Smuzhiyun	  The V4 filesystem format lacks certain features that are supported
31*4882a593Smuzhiyun	  by the V5 format, such as metadata checksumming, strengthened
32*4882a593Smuzhiyun	  metadata verification, and the ability to store timestamps past the
33*4882a593Smuzhiyun	  year 2038.  Because of this, the V4 format is deprecated.  All users
34*4882a593Smuzhiyun	  should upgrade by backing up their files, reformatting, and restoring
35*4882a593Smuzhiyun	  from the backup.
36*4882a593Smuzhiyun
37*4882a593Smuzhiyun	  Administrators and users can detect a V4 filesystem by running
38*4882a593Smuzhiyun	  xfs_info against a filesystem mountpoint and checking for a string
39*4882a593Smuzhiyun	  beginning with "crc=".  If the string "crc=0" is found, the
40*4882a593Smuzhiyun	  filesystem is a V4 filesystem.  If no such string is found, please
41*4882a593Smuzhiyun	  upgrade xfsprogs to the latest version and try again.
42*4882a593Smuzhiyun
43*4882a593Smuzhiyun	  This option will become default N in September 2025.  Support for the
44*4882a593Smuzhiyun	  V4 format will be removed entirely in September 2030.  Distributors
45*4882a593Smuzhiyun	  can say N here to withdraw support earlier.
46*4882a593Smuzhiyun
47*4882a593Smuzhiyun	  To continue supporting the old V4 format (crc=0), say Y.
48*4882a593Smuzhiyun	  To close off an attack surface, say N.
49*4882a593Smuzhiyun
50*4882a593Smuzhiyunconfig XFS_QUOTA
51*4882a593Smuzhiyun	bool "XFS Quota support"
52*4882a593Smuzhiyun	depends on XFS_FS
53*4882a593Smuzhiyun	select QUOTACTL
54*4882a593Smuzhiyun	help
55*4882a593Smuzhiyun	  If you say Y here, you will be able to set limits for disk usage on
56*4882a593Smuzhiyun	  a per user and/or a per group basis under XFS.  XFS considers quota
57*4882a593Smuzhiyun	  information as filesystem metadata and uses journaling to provide a
58*4882a593Smuzhiyun	  higher level guarantee of consistency.  The on-disk data format for
59*4882a593Smuzhiyun	  quota is also compatible with the IRIX version of XFS, allowing a
60*4882a593Smuzhiyun	  filesystem to be migrated between Linux and IRIX without any need
61*4882a593Smuzhiyun	  for conversion.
62*4882a593Smuzhiyun
63*4882a593Smuzhiyun	  If unsure, say N.  More comprehensive documentation can be found in
64*4882a593Smuzhiyun	  README.quota in the xfsprogs package.  XFS quota can be used either
65*4882a593Smuzhiyun	  with or without the generic quota support enabled (CONFIG_QUOTA) -
66*4882a593Smuzhiyun	  they are completely independent subsystems.
67*4882a593Smuzhiyun
68*4882a593Smuzhiyunconfig XFS_POSIX_ACL
69*4882a593Smuzhiyun	bool "XFS POSIX ACL support"
70*4882a593Smuzhiyun	depends on XFS_FS
71*4882a593Smuzhiyun	select FS_POSIX_ACL
72*4882a593Smuzhiyun	help
73*4882a593Smuzhiyun	  POSIX Access Control Lists (ACLs) support permissions for users and
74*4882a593Smuzhiyun	  groups beyond the owner/group/world scheme.
75*4882a593Smuzhiyun
76*4882a593Smuzhiyun	  If you don't know what Access Control Lists are, say N.
77*4882a593Smuzhiyun
78*4882a593Smuzhiyunconfig XFS_RT
79*4882a593Smuzhiyun	bool "XFS Realtime subvolume support"
80*4882a593Smuzhiyun	depends on XFS_FS
81*4882a593Smuzhiyun	help
82*4882a593Smuzhiyun	  If you say Y here you will be able to mount and use XFS filesystems
83*4882a593Smuzhiyun	  which contain a realtime subvolume.  The realtime subvolume is a
84*4882a593Smuzhiyun	  separate area of disk space where only file data is stored.  It was
85*4882a593Smuzhiyun	  originally designed to provide deterministic data rates suitable
86*4882a593Smuzhiyun	  for media streaming applications, but is also useful as a generic
87*4882a593Smuzhiyun	  mechanism for ensuring data and metadata/log I/Os are completely
88*4882a593Smuzhiyun	  separated.  Regular file I/Os are isolated to a separate device
89*4882a593Smuzhiyun	  from all other requests, and this can be done quite transparently
90*4882a593Smuzhiyun	  to applications via the inherit-realtime directory inode flag.
91*4882a593Smuzhiyun
92*4882a593Smuzhiyun	  See the xfs man page in section 5 for additional information.
93*4882a593Smuzhiyun
94*4882a593Smuzhiyun	  If unsure, say N.
95*4882a593Smuzhiyun
96*4882a593Smuzhiyunconfig XFS_ONLINE_SCRUB
97*4882a593Smuzhiyun	bool "XFS online metadata check support"
98*4882a593Smuzhiyun	default n
99*4882a593Smuzhiyun	depends on XFS_FS
100*4882a593Smuzhiyun	help
101*4882a593Smuzhiyun	  If you say Y here you will be able to check metadata on a
102*4882a593Smuzhiyun	  mounted XFS filesystem.  This feature is intended to reduce
103*4882a593Smuzhiyun	  filesystem downtime by supplementing xfs_repair.  The key
104*4882a593Smuzhiyun	  advantage here is to look for problems proactively so that
105*4882a593Smuzhiyun	  they can be dealt with in a controlled manner.
106*4882a593Smuzhiyun
107*4882a593Smuzhiyun	  This feature is considered EXPERIMENTAL.  Use with caution!
108*4882a593Smuzhiyun
109*4882a593Smuzhiyun	  See the xfs_scrub man page in section 8 for additional information.
110*4882a593Smuzhiyun
111*4882a593Smuzhiyun	  If unsure, say N.
112*4882a593Smuzhiyun
113*4882a593Smuzhiyunconfig XFS_ONLINE_REPAIR
114*4882a593Smuzhiyun	bool "XFS online metadata repair support"
115*4882a593Smuzhiyun	default n
116*4882a593Smuzhiyun	depends on XFS_FS && XFS_ONLINE_SCRUB
117*4882a593Smuzhiyun	help
118*4882a593Smuzhiyun	  If you say Y here you will be able to repair metadata on a
119*4882a593Smuzhiyun	  mounted XFS filesystem.  This feature is intended to reduce
120*4882a593Smuzhiyun	  filesystem downtime by fixing minor problems before they cause the
121*4882a593Smuzhiyun	  filesystem to go down.  However, it requires that the filesystem be
122*4882a593Smuzhiyun	  formatted with secondary metadata, such as reverse mappings and inode
123*4882a593Smuzhiyun	  parent pointers.
124*4882a593Smuzhiyun
125*4882a593Smuzhiyun	  This feature is considered EXPERIMENTAL.  Use with caution!
126*4882a593Smuzhiyun
127*4882a593Smuzhiyun	  See the xfs_scrub man page in section 8 for additional information.
128*4882a593Smuzhiyun
129*4882a593Smuzhiyun	  If unsure, say N.
130*4882a593Smuzhiyun
131*4882a593Smuzhiyunconfig XFS_WARN
132*4882a593Smuzhiyun	bool "XFS Verbose Warnings"
133*4882a593Smuzhiyun	depends on XFS_FS && !XFS_DEBUG
134*4882a593Smuzhiyun	help
135*4882a593Smuzhiyun	  Say Y here to get an XFS build with many additional warnings.
136*4882a593Smuzhiyun	  It converts ASSERT checks to WARN, so will log any out-of-bounds
137*4882a593Smuzhiyun	  conditions that occur that would otherwise be missed. It is much
138*4882a593Smuzhiyun	  lighter weight than XFS_DEBUG and does not modify algorithms and will
139*4882a593Smuzhiyun	  not cause the kernel to panic on non-fatal errors.
140*4882a593Smuzhiyun
141*4882a593Smuzhiyun	  However, similar to XFS_DEBUG, it is only advisable to use this if you
142*4882a593Smuzhiyun	  are debugging a particular problem.
143*4882a593Smuzhiyun
144*4882a593Smuzhiyunconfig XFS_DEBUG
145*4882a593Smuzhiyun	bool "XFS Debugging support"
146*4882a593Smuzhiyun	depends on XFS_FS
147*4882a593Smuzhiyun	help
148*4882a593Smuzhiyun	  Say Y here to get an XFS build with many debugging features,
149*4882a593Smuzhiyun	  including ASSERT checks, function wrappers around macros,
150*4882a593Smuzhiyun	  and extra sanity-checking functions in various code paths.
151*4882a593Smuzhiyun
152*4882a593Smuzhiyun	  Note that the resulting code will be HUGE and SLOW, and probably
153*4882a593Smuzhiyun	  not useful unless you are debugging a particular problem.
154*4882a593Smuzhiyun
155*4882a593Smuzhiyun	  Say N unless you are an XFS developer, or you play one on TV.
156*4882a593Smuzhiyun
157*4882a593Smuzhiyunconfig XFS_ASSERT_FATAL
158*4882a593Smuzhiyun	bool "XFS fatal asserts"
159*4882a593Smuzhiyun	default y
160*4882a593Smuzhiyun	depends on XFS_FS && XFS_DEBUG
161*4882a593Smuzhiyun	help
162*4882a593Smuzhiyun	  Set the default DEBUG mode ASSERT failure behavior.
163*4882a593Smuzhiyun
164*4882a593Smuzhiyun	  Say Y here to cause DEBUG mode ASSERT failures to result in fatal
165*4882a593Smuzhiyun	  errors that BUG() the kernel by default. If you say N, ASSERT failures
166*4882a593Smuzhiyun	  result in warnings.
167*4882a593Smuzhiyun
168*4882a593Smuzhiyun	  This behavior can be modified at runtime via sysfs.
169