On Fri, Apr 1, 2011 at 11:27 AM, David Howells <dhowe...@redhat.com> wrote:
> Leonardo Chiquitto <leonardo.li...@gmail.com> wrote:
>
>> open("/data", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 3
>> fcntl(3, F_GETFD)                       = 0x1 (flags FD_CLOEXEC)
>> getdents64(3, /* 3 entries */, 32768)   = 72
>> lstat("/data/isos", {st_mode=S_IFDIR|0555, st_size=0, ...}) = 0
>> lgetxattr("/data/isos", "security.selinux", 0x62ad60, 255) = -1 EOPNOTSUPP 
>> (Operation not supported)
>> getxattr("/data/isos", "system.posix_acl_access", 0x0, 0) = -1 EOPNOTSUPP 
>> (Operation not supported)
>> getdents64(3, /* 0 entries */, 32768)   = 0
>
> Yeah, I suspect the getxattr() is the problem.  ls calls libacl to get the
> Posix ACL of the target file, but that uses the getxattr() which asserts
> LOOKUP_FOLLOW during the pathwalk, causing the automount unconditionally:-/
>
> I'm discussing this with the coreutils and acl package maintainers to see if
> we can fix it in userspace.

Just for reference (in case someone's looking for a solution for this
in the archives),
the problem was fixed by the following changes:

1. libacl: Add acl_extended_file_nofollow()

http://git.savannah.gnu.org/gitweb/?p=acl.git;a=commitdiff;h=6bf5e24d48077db58b389e90558100fc121b8134
http://git.savannah.gnu.org/gitweb/?p=acl.git;a=commitdiff;h=ad4ca5aaee96e98b2e8e8a4351fa5e6c58d65216
http://git.savannah.gnu.org/gitweb/?p=acl.git;a=commitdiff;h=ebfeee80d4bffcbcbebcffb2f2d3db0427d01e2d

2. coreutils/gnulib: use acl_extended_file_nofollow if available

http://git.savannah.gnu.org/gitweb/?p=gnulib.git;a=commitdiff;h=95f7c57ff4090a5dee062044d2c7b99879077808

Fixed packages are already available at least in the development versions of
openSUSE and Fedora.

Leonardo

_______________________________________________
autofs mailing list
autofs@linux.kernel.org
http://linux.kernel.org/mailman/listinfo/autofs

Reply via email to