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