On May 25, 2017, at 4:37 PM, J. R. Okajima <hooanon05g@xxxxxxxxx> wrote: > > Since v4.12-rc1, I see an error on NFS3. > > $ stat -f . > File: "." > ID: 0 Namelen: 255 Type: nfs > Block size: 32768 Fundamental block size: 32768 > Blocks: Total: 248 Free: 247 Available: 234 > Inodes: Total: 2048 Free: 2020 > $ cp ../ro/f_src . > $ rm f_src > rm: remove regular file 'f_src'? y > $ cp -p ../ro/f_src . > cp: preserving permissions for './f_src': Permission denied > > (from "cp --help") > -p same as --preserve=mode,ownership,timestamps > --preserve[=ATTR_LIST] preserve the specified attributes (default: > mode,ownership,timestamps), if possible > additional attributes: context, links, xattr, > all > > By strace, I see fsetxattr(2) for ACL returned the error. > Is this an intentional behaviour? > > (from strace) > open("../ro/f_src", O_RDONLY) = 3 > fstat(3, {st_mode=S_IFREG|0644, st_size=2, ...}) = 0 > open("./f_src", O_WRONLY|O_CREAT|O_EXCL, 0600) = 4 > fstat(4, {st_mode=S_IFREG|0600, st_size=0, ...}) = 0 > fadvise64(3, 0, 0, POSIX_FADV_SEQUENTIAL) = 0 > mmap(NULL, 139264, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fcb293f8000 > read(3, "f\n", 131072) = 2 > write(4, "f\n", 2) = 2 > read(3, "", 131072) = 0 > utimensat(4, NULL, {{1495750885, 0}, {1495750885, 0}}, 0) = 0 > fgetxattr(3, "system.posix_acl_access", 0x7ffed40196d0, 132) = -1 ENODATA (No data available) > fstat(3, {st_mode=S_IFREG|0644, st_size=2, ...}) = 0 > fsetxattr(4, "system.posix_acl_access", "\x02\x00\x00\x00\x01\x00\x06\x00\xff\xff\xff\xff\x04\x00\x04\x00\xff\xff\xff\xff \x00\x04\x00\xff\xff\xff\xff", 28, 0) = -1 EACCES (Permission denied) To me this looks like "cp" is broken. If it gets no POSIX ACL xattr from the kernel (ENODATA) for this file, why is it trying to save a POSIX ACL to the copy? That just adds needless overhead, either at the syscall level, or also on disk if it is storing ACLs on files that don't need them... Cheers, Andreas > fchmod(4, 0100644) = 0 > open("/usr/lib/charset.alias", O_RDONLY|O_NOFOLLOW) = -1 ENOENT (No such file or directory) > write(2, "cp: ", 4) = 4 > write(2, "preserving permissions for './f_"..., 36) = 36 > write(2, ": Permission denied", 19) = 19 > write(2, "\n", 1) = 1 > > Additonally, after this error, the shutdown process stops saying > nfs: server localhost not responding, still trying > > Does anyone know which commit causes these problems? > > > J. R. Okajima Cheers, Andreas
Attachment:
signature.asc
Description: Message signed with OpenPGP