Arnd Bergmann:As you might know, aufs doesn't have its own file mapped pages. Aufs overrides vm_operations and redirects the page fault to the lower file's vm_operation. So the shared mmap has no problem. I am afraid that I should write "marks the attributes in aufs is obsoleted" instead of "marks the aufs data for the file is obsoleted" in my previous mail. I see. Then the solution must be union-mount. Your 10 steps seem to be rather verbose. Generally, 'lookup' means to create (or get) inode and dentry, and the fs inode and VFS inode are allocated in the same time. Aufs does 'lookup' for the lower dentry (yes, it must be repeated if necessary), and sets it to the aufs dentry/inode private data. If a user specifies the prohibitted filename, the he will get an error. Yes, the whiteout prefix is a limitation (or a feature). - To detect the filesystem type is easy. Aufs can know whether the branch is aufs or not by checking s_magic or s_type->name. - aufs doesn't fold? expand? the nested aufs branch. You might be pointng out a general matter of stacking filesystem. When one of branches is a stacking fs, and it is nested deeper and deeper, - /aufs1 = /rw1 + /aufs2 - /aufs2 = /rw2 + /aufs3 - /aufs3 = /rw3 + /aufs4 ::: then the stack-overflow may happen. It is not limited to readdir, it can happen in every operation. Basically aufs rejects 'aufs/unionfs branch', in other word "aufs branch of another aufs mount." But aufs has a configuration to enable this. When a user enables it and sets deeply nested aufs branch, it could happen. But this is same thing even if you use union-mount (and if UnionMount supports such branch). I don't want you to call aufs users crazy who are using such policies. By the way, how do you think link(2) or rename(2)? When the source file exists on the lower writable branch, do you think copy-up is the best way? Or do you think all lower branches should be readonly? There is an exception in aufs's branch-select policy. That is link/rename case. When the source file exists on a writable branch, aufs tries link/rename it on that branch in every policy. Do you think it best to do it on the top branch only? Junjiro Okajima --
| Tarkan Erimer | Re: Dual-Licensing Linux Kernel with GPL V2 and GPL V3 |
| Greg Kroah-Hartman | [PATCH 005/196] Chinese: add translation of SubmittingDrivers |
| Andrew Morton | Re: -mm merge plans for 2.6.23 -- sys_fallocate |
| Michael Opdenacker | [PATCH] x86: fix unconditional arch/x86/kernel/pcspeaker.c compiling |
git: | |
| David Miller | Re: [GIT]: Networking |
| Gerrit Renker | [PATCH 27/37] dccp: Integration of dynamic feature activation - part 2 (server side) |
| Jarek Poplawski | [PATCH] pkt_sched: Destroy gen estimators under rtnl_lock(). |
| Andrew Morton | Re: [BUG] New Kernel Bugs |
