1 # SPDX-License-Identifier: GPL-2.0
3 tristate "Aufs (Advanced multi layered unification filesystem) support"
5 Aufs is a stackable unification filesystem such as Unionfs,
6 which unifies several directories and provides a merged single
8 In the early days, aufs was entirely re-designed and
9 re-implemented Unionfs Version 1.x series. Introducing many
10 original ideas, approaches and improvements, it becomes totally
11 different from Unionfs while keeping the basic features.
15 prompt "Maximum number of branches"
16 default AUFS_BRANCH_MAX_127
18 Specifies the maximum number of branches (or member directories)
19 in a single aufs. The larger value consumes more system
20 resources and has a minor impact to performance.
21 config AUFS_BRANCH_MAX_127
24 Specifies the maximum number of branches (or member directories)
25 in a single aufs. The larger value consumes more system
26 resources and has a minor impact to performance.
27 config AUFS_BRANCH_MAX_511
30 Specifies the maximum number of branches (or member directories)
31 in a single aufs. The larger value consumes more system
32 resources and has a minor impact to performance.
33 config AUFS_BRANCH_MAX_1023
36 Specifies the maximum number of branches (or member directories)
37 in a single aufs. The larger value consumes more system
38 resources and has a minor impact to performance.
39 config AUFS_BRANCH_MAX_32767
42 Specifies the maximum number of branches (or member directories)
43 in a single aufs. The larger value consumes more system
44 resources and has a minor impact to performance.
49 depends on AUFS_MAGIC_SYSRQ || PROC_FS
52 Automatic configuration for internal use.
53 When aufs supports Magic SysRq or /proc, enabled automatically.
56 bool "Detect direct branch access (bypassing aufs)"
58 If you want to modify files on branches directly, eg. bypassing aufs,
59 and want aufs to detect the changes of them fully, then enable this
60 option and use 'udba=notify' mount option.
61 Currently there is only one available configuration, "fsnotify".
62 It will have a negative impact to the performance.
66 prompt "method" if AUFS_HNOTIFY
67 default AUFS_HFSNOTIFY
74 bool "NFS-exportable aufs"
77 If you want to export your mounted aufs via NFS, then enable this
78 option. There are several requirements for this configuration.
83 depends on AUFS_EXPORT
84 depends on 64BIT && !(ALPHA || S390)
87 Automatic configuration for internal use.
88 /* typedef unsigned long/int __kernel_ino_t */
89 /* alpha and s390x are int */
92 bool "support for XATTR/EA (including Security Labels)"
94 If your branch fs supports XATTR/EA and you want to make them
95 available in aufs too, then enable this opsion and specify the
96 branch attributes for EA.
100 bool "File-based Hierarchical Storage Management"
102 Hierarchical Storage Management (or HSM) is a well-known feature
103 in the storage world. Aufs provides this feature as file-based.
104 with multiple branches.
105 These multiple branches are prioritized, ie. the topmost one
106 should be the fastest drive and be used heavily.
109 bool "Readdir in userspace"
111 Aufs has two methods to provide a merged view for a directory,
112 by a user-space library and by kernel-space natively. The latter
113 is always enabled but sometimes large and slow.
114 If you enable this option, install the library in aufs2-util
115 package, and set some environment variables for your readdir(3),
116 then the work will be handled in user-space which generally
117 shows better performance in most cases.
118 See detail in aufs.5.
121 bool "Workaround for rename(2)-ing a directory"
123 By default, aufs returns EXDEV error in renameing a dir who has
124 his child on the lower branch, since it is a bad idea to issue
125 rename(2) internally for every lower branch. But user may not
126 accept this behaviour. So here is a workaround to allow such
127 rename(2) and store some extra infromation on the writable
128 branch. Obviously this costs high (and I don't like it).
129 To use this feature, you need to enable this configuration AND
130 to specify the mount option `dirren.'
131 See details in aufs.5 and the design documents.
134 bool "Show whiteouts"
136 If you want to make the whiteouts in aufs visible, then enable
137 this option and specify 'shwh' mount option. Although it may
138 sounds like philosophy or something, but in technically it
139 simply shows the name of whiteout with keeping its behaviour.
142 bool "Ramfs (initramfs/rootfs) as an aufs branch"
144 If you want to use ramfs as an aufs branch fs, then enable this
145 option. Generally tmpfs is recommended.
146 Aufs prohibited them to be a branch fs by default, because
147 initramfs becomes unusable after switch_root or something
148 generally. If you sets initramfs as an aufs branch and boot your
149 system by switch_root, you will meet a problem easily since the
150 files in initramfs may be inaccessible.
151 Unless you are going to use ramfs as an aufs branch fs without
152 switch_root or something, leave it N.
155 bool "Fuse fs as an aufs branch"
159 If you want to use fuse-based userspace filesystem as an aufs
160 branch fs, then enable this option.
161 It implements the internal poll(2) operation which is
162 implemented by fuse only (curretnly).
167 Automatic configuration for internal use.
169 config AUFS_BR_HFSPLUS
170 bool "Hfsplus as an aufs branch"
171 depends on HFSPLUS_FS
174 If you want to use hfsplus fs as an aufs branch fs, then enable
175 this option. This option introduces a small overhead at
176 copying-up a file on hfsplus.
178 config AUFS_BDEV_LOOP
180 depends on BLK_DEV_LOOP
183 Automatic configuration for internal use.
184 Convert =[ym] into =y.
189 Enable this to compile aufs internal debug code.
190 It will have a negative impact to the performance.
192 config AUFS_MAGIC_SYSRQ
194 depends on AUFS_DEBUG && MAGIC_SYSRQ
197 Automatic configuration for internal use.
198 When aufs supports Magic SysRq, enabled automatically.