Kamil Dudka wrote:
> > a) A non-symlink, non-directory. Here acl_extended_file_nofollow and
> > acl_extended_file are equivalent.
>
> If I understand this, you expect non-directories cannot be mount points, thus
> the call cannot trigger the mount, right?
That's what I was assuming, yes. My kernel knowledge is rusty, though. Is it
now possible to use regular files as mount points?
> > c) A mount point.
> > f) A symlink to a mount point, with dereferencing (stat()).
>
> The behavior of ls wrt. tregerring mounts is implementation defined, isn't it?
Yes. But if you trigger an autofs mount in case f), it will be seen as a
bug, in the same way as it was considered a bug in case c).
> > So I'm asking to change
> >
> > ret = acl_extended_file_wrap (name);
> >
> > to
> >
> > if (S_ISDIR (sb->st_mode))
> > ret = acl_extended_file_wrap (name);
> > else
> > ret = acl_extended_file (name);
>
> Is optimization the only purpose of this change? I would then prefer to get
> it working first and optimize it later on.
I'm trying to explain to you that
- your patch is introducing a performance regression in case a), which is
the most frequent case,
- your patch does not completely work yet: case f).
> The last patch does not break anything that worked before, does it?
It degrades the performance of "ls -l" in the most frequent case.
> Case f) has never worked, nobody complained. Partial fix is better than no
> fix.
I had the impression that you wanted to fix "ls -l", not fix some bugs and
leave others open.
And I wanted to help coreutils by stating which are the 9 cases which IMO
should have a test case, each.
> > - Or use code equivalent to canonicalize_filename_mode(CAN_EXISTING).
>
> I am personally not intersted in changing something that works unless there
> is
> a user that needs the change actually.
Whereas I consider an inconsistency between case c) and case f) to be a bug,
even if no user has reported it so far.
Bruno