Hi list,

I have an unionfs mount setup like this:

# mkdir br1 br2 rwunion
# mount -t nfs -o ro server:/nfsexport /br2
# mount -t unionfs -o dirs=/br1=rw:/br2=ro none /rwunion/

So far so good. When I try to add new files or remove files that pre-existed on
the ro-nfs branch, that works just fine. However appending/chaning files
originating from the ro-nfs branch, I get this:

# ls -la /br1
# ls -la /br2
-rw-r--r-- 1 root root   55 2008-11-06 04:41 test

# ls -la /rwunion
-rw-r--r-- 1 root root   55 2008-11-06 04:41 test

# echo >test
bash: test: Permission denied

# strace -e file /bin/sh -c "echo >test"
execve("/bin/sh", ["/bin/sh", "-c", "echo >test"], [/* 21 vars */]) = 0
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
access("/etc/ld.so.preload", R_OK)      = -1 ENOENT (No such file or directory)
open("/etc/ld.so.cache", O_RDONLY)      = 3
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
open("/lib/libncurses.so.5", O_RDONLY)  = 3
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
open("/lib/libdl.so.2", O_RDONLY)       = 3
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
open("/lib/libc.so.6", O_RDONLY)        = 3
open("/dev/tty", O_RDWR|O_NONBLOCK)     = 3
open("/usr/lib/locale/locale-archive", O_RDONLY) = 3
open("/proc/meminfo", O_RDONLY)         = 3
stat("/rwunion", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
stat(".", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
open("/usr/lib/gconv/gconv-modules.cache", O_RDONLY) = 3
open("test", O_WRONLY|O_CREAT|O_TRUNC, 0666) = -1 EACCES (Permission denied)
open("/usr/share/locale/locale.alias", O_RDONLY) = 3
open("/usr/share/locale/en_US.UTF-8/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT
(No such file or directory)
open("/usr/share/locale/en_US.utf8/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT
(No such file or directory)
open("/usr/share/locale/en_US/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No
such file or directory)
open("/usr/share/locale/en.UTF-8/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT
(No such file or directory)
open("/usr/share/locale/en.utf8/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No
such file or directory)
open("/usr/share/locale/en/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such
file or directory)
/bin/sh: test: Permission denied


Now instead of ERO an EACCES is triggered which probably makes unionfs execute
code that is reserved for "no-permission situations" instead of executing "no
write access, try at next writeable branch left of this".

I'll happily provide you with any additional info you need.

HTH
Daniel
_______________________________________________
unionfs mailing list: http://unionfs.filesystems.org/
unionfs@mail.fsl.cs.sunysb.edu
http://www.fsl.cs.sunysb.edu/mailman/listinfo/unionfs

Reply via email to