Merge branch 'stable-3.2' into pandora-3.2
[pandora-kernel.git] / fs / aufs / Kconfig
1 config AUFS_FS
2         tristate "Aufs (Advanced multi layered unification filesystem) support"
3         depends on EXPERIMENTAL
4         help
5         Aufs is a stackable unification filesystem such as Unionfs,
6         which unifies several directories and provides a merged single
7         directory.
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.
12
13 if AUFS_FS
14 choice
15         prompt "Maximum number of branches"
16         default AUFS_BRANCH_MAX_127
17         help
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
22         bool "127"
23         help
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
28         bool "511"
29         help
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
34         bool "1023"
35         help
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
40         bool "32767"
41         help
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.
45 endchoice
46
47 config AUFS_SBILIST
48         bool
49         depends on AUFS_MAGIC_SYSRQ || PROC_FS
50         default y
51         help
52         Automatic configuration for internal use.
53         When aufs supports Magic SysRq or /proc, enabled automatically.
54
55 config AUFS_HNOTIFY
56         bool "Detect direct branch access (bypassing aufs)"
57         help
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.
63         See detail in aufs.5.
64
65 choice
66         prompt "method" if AUFS_HNOTIFY
67         default AUFS_HFSNOTIFY
68 config AUFS_HFSNOTIFY
69         bool "fsnotify"
70         select FSNOTIFY
71 endchoice
72
73 config AUFS_EXPORT
74         bool "NFS-exportable aufs"
75         depends on EXPORTFS
76         help
77         If you want to export your mounted aufs via NFS, then enable this
78         option. There are several requirements for this configuration.
79         See detail in aufs.5.
80
81 config AUFS_INO_T_64
82         bool
83         depends on AUFS_EXPORT
84         depends on 64BIT && !(ALPHA || S390)
85         default y
86         help
87         Automatic configuration for internal use.
88         /* typedef unsigned long/int __kernel_ino_t */
89         /* alpha and s390x are int */
90
91 config AUFS_RDU
92         bool "Readdir in userspace"
93         help
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.
102
103 config AUFS_PROC_MAP
104         bool "support for /proc/maps and lsof(1)"
105         depends on PROC_FS
106         help
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
113         printed.
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).
125
126 config AUFS_SP_IATTR
127         bool "Respect the attributes (mtime/ctime mainly) of special files"
128         help
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.
136
137 config AUFS_SHWH
138         bool "Show whiteouts"
139         help
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.
144
145 config AUFS_BR_RAMFS
146         bool "Ramfs (initramfs/rootfs) as an aufs branch"
147         help
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.
157
158 config AUFS_BR_FUSE
159         bool "Fuse fs as an aufs branch"
160         depends on FUSE_FS
161         select AUFS_POLL
162         help
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).
167
168 config AUFS_POLL
169         bool
170         help
171         Automatic configuration for internal use.
172
173 config AUFS_BR_HFSPLUS
174         bool "Hfsplus as an aufs branch"
175         depends on HFSPLUS_FS
176         default y
177         help
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.
181
182 config AUFS_BDEV_LOOP
183         bool
184         depends on BLK_DEV_LOOP
185         default y
186         help
187         Automatic configuration for internal use.
188         Convert =[ym] into =y.
189
190 config AUFS_DEBUG
191         bool "Debug aufs"
192         help
193         Enable this to compile aufs internal debug code.
194         It will have a negative impact to the performance.
195
196 config AUFS_MAGIC_SYSRQ
197         bool
198         depends on AUFS_DEBUG && MAGIC_SYSRQ
199         default y
200         help
201         Automatic configuration for internal use.
202         When aufs supports Magic SysRq, enabled automatically.
203 endif