1# SPDX-License-Identifier: GPL-2.0-only
2config OVERLAY_FS
3	tristate "Overlay filesystem support"
4	select FS_STACK
5	select EXPORTFS
6	help
7	  An overlay filesystem combines two filesystems - an 'upper' filesystem
8	  and a 'lower' filesystem.  When a name exists in both filesystems, the
9	  object in the 'upper' filesystem is visible while the object in the
10	  'lower' filesystem is either hidden or, in the case of directories,
11	  merged with the 'upper' object.
12
13	  For more information see Documentation/filesystems/overlayfs.rst
14
15config OVERLAY_FS_REDIRECT_DIR
16	bool "Overlayfs: turn on redirect directory feature by default"
17	depends on OVERLAY_FS
18	help
19	  If this config option is enabled then overlay filesystems will use
20	  redirects when renaming directories by default.  In this case it is
21	  still possible to turn off redirects globally with the
22	  "redirect_dir=off" module option or on a filesystem instance basis
23	  with the "redirect_dir=off" mount option.
24
25	  Note, that redirects are not backward compatible.  That is, mounting
26	  an overlay which has redirects on a kernel that doesn't support this
27	  feature will have unexpected results.
28
29	  If unsure, say N.
30
31config OVERLAY_FS_REDIRECT_ALWAYS_FOLLOW
32	bool "Overlayfs: follow redirects even if redirects are turned off"
33	default y
34	depends on OVERLAY_FS
35	help
36	  Disable this to get a possibly more secure configuration, but that
37	  might not be backward compatible with previous kernels.
38
39	  If backward compatibility is not an issue, then it is safe and
40	  recommended to say N here.
41
42	  For more information, see Documentation/filesystems/overlayfs.rst
43
44	  If unsure, say Y.
45
46config OVERLAY_FS_INDEX
47	bool "Overlayfs: turn on inodes index feature by default"
48	depends on OVERLAY_FS
49	help
50	  If this config option is enabled then overlay filesystems will use
51	  the index directory to map lower inodes to upper inodes by default.
52	  In this case it is still possible to turn off index globally with the
53	  "index=off" module option or on a filesystem instance basis with the
54	  "index=off" mount option.
55
56	  The inodes index feature prevents breaking of lower hardlinks on copy
57	  up.
58
59	  Note, that the inodes index feature is not backward compatible.
60	  That is, mounting an overlay which has an inodes index on a kernel
61	  that doesn't support this feature will have unexpected results.
62
63	  If unsure, say N.
64
65config OVERLAY_FS_NFS_EXPORT
66	bool "Overlayfs: turn on NFS export feature by default"
67	depends on OVERLAY_FS
68	depends on OVERLAY_FS_INDEX
69	depends on !OVERLAY_FS_METACOPY
70	help
71	  If this config option is enabled then overlay filesystems will use
72	  the index directory to decode overlay NFS file handles by default.
73	  In this case, it is still possible to turn off NFS export support
74	  globally with the "nfs_export=off" module option or on a filesystem
75	  instance basis with the "nfs_export=off" mount option.
76
77	  The NFS export feature creates an index on copy up of every file and
78	  directory.  This full index is used to detect overlay filesystems
79	  inconsistencies on lookup, like redirect from multiple upper dirs to
80	  the same lower dir.  The full index may incur some overhead on mount
81	  time, especially when verifying that directory file handles are not
82	  stale.
83
84	  Note, that the NFS export feature is not backward compatible.
85	  That is, mounting an overlay which has a full index on a kernel
86	  that doesn't support this feature will have unexpected results.
87
88	  Most users should say N here and enable this feature on a case-by-
89	  case basis with the "nfs_export=on" mount option.
90
91	  Say N unless you fully understand the consequences.
92
93config OVERLAY_FS_XINO_AUTO
94	bool "Overlayfs: auto enable inode number mapping"
95	default n
96	depends on OVERLAY_FS
97	depends on 64BIT
98	help
99	  If this config option is enabled then overlay filesystems will use
100	  unused high bits in underlying filesystem inode numbers to map all
101	  inodes to a unified address space.  The mapped 64bit inode numbers
102	  might not be compatible with applications that expect 32bit inodes.
103
104	  If compatibility with applications that expect 32bit inodes is not an
105	  issue, then it is safe and recommended to say Y here.
106
107	  For more information, see Documentation/filesystems/overlayfs.rst
108
109	  If unsure, say N.
110
111config OVERLAY_FS_METACOPY
112	bool "Overlayfs: turn on metadata only copy up feature by default"
113	depends on OVERLAY_FS
114	select OVERLAY_FS_REDIRECT_DIR
115	help
116	  If this config option is enabled then overlay filesystems will
117	  copy up only metadata where appropriate and data copy up will
118	  happen when a file is opened for WRITE operation. It is still
119	  possible to turn off this feature globally with the "metacopy=off"
120	  module option or on a filesystem instance basis with the
121	  "metacopy=off" mount option.
122
123	  Note, that this feature is not backward compatible.  That is,
124	  mounting an overlay which has metacopy only inodes on a kernel
125	  that doesn't support this feature will have unexpected results.
126
127	  If unsure, say N.
128
129config OVERLAY_FS_DEBUG
130	bool "Overlayfs: turn on extra debugging checks"
131	default n
132	depends on OVERLAY_FS
133	help
134	  Say Y here to enable extra debugging checks in overlayfs.
135
136	  If unsure, say N.
137