xfs
[Top] [All Lists]

NFS+ACL

To: linux-xfs@xxxxxxxxxxx
Subject: NFS+ACL
From: Hicham Amaoui <Hicham.Amaoui@xxxxxxxxxx>
Date: Mon, 08 Sep 2003 17:29:56 +0200
Sender: linux-xfs-bounce@xxxxxxxxxxx
User-agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.4) Gecko/20030623
linux-xfs@xxxxxxxxxxx

linux-xfs@xxxxxxxxxxx

linux-xfs@xxxxxxxxxxx

Hi,
I'm gettting errors when testing NFS+ACL over XFS although files/acls
are created correctly.
Here's an example:

[root@dyn3 tmp]# ls -l
total 0
[root@dyn3 tmp]# touch file1
[root@dyn3 tmp]# cp -p file1 file2
cp: preserving permissions for `file2': Not a directory
[root@dyn3 tmp]# ls -l
total 0
-rw-r--r--    1 root     root            0 Sep  8 17:08 file1
-rw-r--r--    1 root     root            0 Sep  8 17:08 file2
[root@dyn3 tmp]# strace cp -p file1 file3
execve("/bin/cp", ["cp", "-p", "file1", "file3"], [/* 15 vars */]) = 0
uname({sys="Linux", node="dyn3", ...})  = 0
brk(0)                                  = 0x80544a4
open("/etc/ld.so.preload", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/etc/ld.so.cache", O_RDONLY)      = 4
fstat64(4, {st_mode=S_IFREG|0644, st_size=29952, ...}) = 0
old_mmap(NULL, 29952, PROT_READ, MAP_PRIVATE, 4, 0) = 0x40013000
close(4)                                = 0
open("/lib/libacl.so.1", O_RDONLY)      = 4
read(4, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\200\24"..., 1024) = 1024
fstat64(4, {st_mode=S_IFREG|0644, st_size=169230, ...}) = 0
old_mmap(NULL, 30292, PROT_READ|PROT_EXEC, MAP_PRIVATE, 4, 0) = 0x4001b000
mprotect(0x40022000, 1620, PROT_NONE)   = 0
old_mmap(0x40022000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 4, 0x6000) = 0x40022000
close(4)                                = 0
open("/lib/libc.so.6", O_RDONLY)        = 4
read(4, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0hr\1\000"..., 1024) = 1024
fstat64(4, {st_mode=S_IFREG|0755, st_size=1344152, ...}) = 0
old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40023000
old_mmap(NULL, 1207648, PROT_READ|PROT_EXEC, MAP_PRIVATE, 4, 0) = 0x40024000
mprotect(0x40142000, 36192, PROT_NONE)  = 0
old_mmap(0x40142000, 20480, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 4, 0x11e000) = 0x40142000 old_mmap(0x40147000, 15712, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x40147000
close(4)                                = 0
open("/lib/libattr.so.1", O_RDONLY)     = 4
read(4, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\20\16\0"..., 1024) = 1024
fstat64(4, {st_mode=S_IFREG|0644, st_size=51676, ...}) = 0
old_mmap(NULL, 15228, PROT_READ|PROT_EXEC, MAP_PRIVATE, 4, 0) = 0x4014b000
mprotect(0x4014e000, 2940, PROT_NONE)   = 0
old_mmap(0x4014e000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 4, 0x2000) = 0x4014e000
close(4)                                = 0
munmap(0x40013000, 29952)               = 0
brk(0)                                  = 0x80544a4
brk(0x80544d4)                          = 0x80544d4
brk(0x8055000)                          = 0x8055000
geteuid32()                             = 0
lstat64("file3", 0xbffffc30) = -1 ENOENT (No such file or directory)
stat64("file1", {st_mode=S_IFREG|0644, st_size=0, ...}) = 0
open("file1", O_RDONLY|O_LARGEFILE)     = 4
fstat64(4, {st_mode=S_IFREG|0644, st_size=0, ...}) = 0
open("file3", O_WRONLY|O_CREAT|O_LARGEFILE, 0100644) = 5
fstat64(5, {st_mode=S_IFREG|0644, st_size=0, ...}) = 0
fstat64(4, {st_mode=S_IFREG|0644, st_size=0, ...}) = 0
read(4, "", 8192)                       = 0
close(5)                                = 0
close(4)                                = 0
utime("file3", [2003/09/08-17:08:16, 2003/09/08-17:08:16]) = 0
chown32(0xbffffea5, 0, 0)               = 0
SYS_229(0xbffffe9f, 0x40021285, 0xbffff750, 0x84, 0x4000a660) = -1 ENODATA (No data available)
stat64("file1", {st_mode=S_IFREG|0644, st_size=0, ...}) = 0
SYS_226(0xbffffea5, 0x400212ce, 0x80549e0, 0x1c, 0) = -1 ENOTDIR (Not a directory)
chmod("file3", 0100644)                 = 0
write(2, "cp: ", 4cp: )                     = 4
write(2, "preserving permissions for `file"..., 34preserving permissions for `file3') = 34
write(2, ": Not a directory", 17: Not a directory)       = 17
write(2, "\n", 1
)                       = 1
_exit(1)                                = ?
[root@dyn3 tmp]# ltrace cp -p file1 file4
__libc_start_main(0x0804a6d0, 4, 0xbffffdc4, 0x08049128, 0x080505a0 <unfinished ...> __register_frame_info(0x0805404c, 0x08054298, 0xbffffd68, 0x0804965e, 0x08049128) = 0x0805404c
setlocale(6, 0x08050e1f, 0x40097939, 24, 0)       = 0x40138981
bindtextdomain(0x08050e32, 0x08050e20, 0x40097939, 24, 0) = 0x401389a1
textdomain(0x08050e32, 0x401389a1, 0x40097939, 24, 0) = 0x080544f0
__cxa_atexit(0x0804ef80, 0, 0, 0x080544f0, 0x080544f0) = 0
geteuid(0x080544f0, 4, 0xbffffd58, 0x0804a74c, 0xbffffcd0) = 0
getenv(0x08050e3c, 0x401389a1, 0x40097939, 24, 0) = 0
getopt_long(4, 0xbffffdc4, 0x08050e51, 0x08050608, 0) = 112
getopt_long(4, 0xbffffdc4, 0x08050e51, 0x08050608, 0) = -1
malloc(40, 0, 0x4001286c, 0x4014630c, 0xbffffdc4) = 0x08054500
malloc(1048, 0, 0x4001286c, 0x4014630c, 0xbffffdc4) = 0x08054530
__lxstat64(3, 0xbffffea5, 0xbffffc30, 0x400121d8, 5) = -1
__errno_location(5, 0x400234f8, 5, 0x080485b8, 0x40012870) = 0x40146b80
strlen(0xbffffea5, 0xbffffc30, 0xbffffca8, 0x0804a00c, 5) = 5
__xstat64(3, 0xbffffe9f, 0xbffffa50, 0xbffffe9f, 0xbffffcd0) = 0
open64(0xbffffe9f, 0, 0x0faae2f4, 0xbffff870, 0)  = 4
__fxstat64(3, 4, 0xbffff7d0, 0xbffff870, 0)       = 0
open64(0xbffffea5, 65, 33188, 0xbffff870, 0)      = 5
__fxstat64(3, 5, 0xbffff830, 0xbffff870, 0)       = 0
__fxstat64(3, 4, 0xbffff830, 0xbffff870, 0)       = 0
read(4, 0xbfffd7a0, 8192, 0, 0)                   = 0
close(5, 0xbfffd7a0, 8192, 0, 0)                  = 0
close(4, 0xbfffd7a0, 8192, 0, 0)                  = 0
utime(0xbffffea5, 0xbffff908, 0, 0, 0)            = 0
chown(0xbffffea5, 0, 0, 0, 0)                     = 0
acl_get_file(0xbffffe9f, 32768, 0x08054148, 0x08048ae5, 0x4003b445) = 0x08054954
acl_set_file(0xbffffea5, 32768, 0x08054954, 0x08048ae5, 0x4003b445) = -1
__errno_location(0x4003b445, 0x4014630c, 0xbffff8b8, 0x4014630c, 0xbffffac8) = 0x40146b80
acl_free(0x08054954, 0xbffffe9f, 0xbffff8b8, 0x0804d647, 0x4003b445) = 0
chmod(0xbffffea5, 33188, 0xbffff8b8, 0x0804d647, 0x4003b445) = 0
__ctype_get_mb_cur_max(0x4002f070, 0x40023000, 1, 0xbffff758, 0x40022568) = 1
dcgettext(0, 0x08052dfc, 5, 0, 0xbffff758)        = 0x08052dfc
dcgettext(0, 0x08052a45, 5, 0, 0xbffff758)        = 0x08052a45
strlen(0x08052a45, 5, 0xbffff758, 0x0804f31a, 0x4002f070) = 1
dcgettext(0, 0x080522a7, 5, 0x08054360, 0x4003b445) = 0x080522a7
error(0, 20, 0x080522a7, 0x08054360, 0x4003b445cp: preserving permissions for `file4': Not a directory
)  = 0
free(0x08054530, 0, 128, 0, 4)                    = 0
free(0x08054500, 0, 0x0804d2f0, 2, 0xbffffdc4)    = 0
exit(1, 0xbffffdcc, 0, 0xbffffcd0, 0 <unfinished ...>
__fpending(0x40143b00, 0x400124c0, 0x400126d0, 66, 0x4014630c) = 0
__deregister_frame_info(0x0805404c, 3, 0xbffffc78, 0x0804ef92, 1) = 0
+++ exited (status 1) +++

[root@dyn3 tmp]# getfacl file3
# file: file3
# owner: root
# group: root
user::rw-
group::r--
other::r--

[root@dyn3 tmp]# setfacl -m u:user1:rw file3
setfacl: file3: Not a directory
[root@dyn3 tmp]# getfacl file3
# file: file3
# owner: root
# group: root
user::rw-
user:user1:rw-
group::r--
mask::rw-
other::r--

kernel 2.4.21 patched with ea+acl+nfsacl-2.4.21-0.8.60.diff
and xfs snapshot-2.4.21-2003-08-29_05:36_UTC and using libacl-2.2.7-0,
libattr-2.4.1-0 and fileutils-4.1.11 with acl patches.

Regards,
Hicham


<Prev in Thread] Current Thread [Next in Thread>