2 tristate "Aufs (Advanced multi layered unification filesystem) support"
3 depends on EXPERIMENTAL
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 "Readdir in userspace"
94 Aufs has two methods to provide a merged view for a directory,
95 by a user-space library and by kernel-space natively. The latter
96 is always enabled but sometimes large and slow.
97 If you enable this option, install the library in aufs2-util
98 package, and set some environment variables for your readdir(3),
99 then the work will be handled in user-space which generally
100 shows better performance in most cases.
101 See detail in aufs.5.
104 bool "support for /proc/maps and lsof(1)"
107 When you issue mmap(2) in aufs, it is actually a direct mmap(2)
108 call to the file on the branch fs since the file in aufs is
109 purely virtual. And the file path printed in /proc/maps (and
110 others) will be the path on the branch fs. In most cases, it
111 does no harm. But some utilities like lsof(1) may confuse since
112 the utility or user may expect the file path in aufs to be
114 To address this issue, aufs provides a patch which introduces a
115 new member called vm_prfile into struct vm_are_struct. The patch
116 is meaningless without enabling this configuration since nobody
117 sets the new vm_prfile member.
118 If you don't apply the patch, then enabling this configuration
119 will cause a compile error.
120 This approach is fragile since if someone else make some changes
121 around vm_file, then vm_prfile may not work anymore. As a
122 workaround such case, aufs provides this configuration. If you
123 disable it, then lsof(1) may produce incorrect result but the
124 problem will be gone even if the aufs patch is applied (I hope).
127 bool "Respect the attributes (mtime/ctime mainly) of special files"
129 When you write something to a special file, some attributes of it
130 (mtime/ctime mainly) may be updated. Generally such updates are
131 less important (actually some device drivers and NFS ignore
132 it). But some applications (such like test program) requires
133 such updates. If you need these updates, then enable this
134 configuration which introduces some overhead.
135 Currently this configuration handles FIFO only.
138 bool "Show whiteouts"
140 If you want to make the whiteouts in aufs visible, then enable
141 this option and specify 'shwh' mount option. Although it may
142 sounds like philosophy or something, but in technically it
143 simply shows the name of whiteout with keeping its behaviour.
146 bool "Ramfs (initramfs/rootfs) as an aufs branch"
148 If you want to use ramfs as an aufs branch fs, then enable this
149 option. Generally tmpfs is recommended.
150 Aufs prohibited them to be a branch fs by default, because
151 initramfs becomes unusable after switch_root or something
152 generally. If you sets initramfs as an aufs branch and boot your
153 system by switch_root, you will meet a problem easily since the
154 files in initramfs may be inaccessible.
155 Unless you are going to use ramfs as an aufs branch fs without
156 switch_root or something, leave it N.
159 bool "Fuse fs as an aufs branch"
163 If you want to use fuse-based userspace filesystem as an aufs
164 branch fs, then enable this option.
165 It implements the internal poll(2) operation which is
166 implemented by fuse only (curretnly).
171 Automatic configuration for internal use.
173 config AUFS_BR_HFSPLUS
174 bool "Hfsplus as an aufs branch"
175 depends on HFSPLUS_FS
178 If you want to use hfsplus fs as an aufs branch fs, then enable
179 this option. This option introduces a small overhead at
180 copying-up a file on hfsplus.
182 config AUFS_BDEV_LOOP
184 depends on BLK_DEV_LOOP
187 Automatic configuration for internal use.
188 Convert =[ym] into =y.
193 Enable this to compile aufs internal debug code.
194 It will have a negative impact to the performance.
196 config AUFS_MAGIC_SYSRQ
198 depends on AUFS_DEBUG && MAGIC_SYSRQ
201 Automatic configuration for internal use.
202 When aufs supports Magic SysRq, enabled automatically.