svn commit: r191055 - head/lib/libc/string
Robert Watson
rwatson at FreeBSD.org
Tue Apr 14 19:17:59 UTC 2009
On Tue, 14 Apr 2009, Tim Kientzle wrote:
>> There is no way for strmode(3) to append '+' if the file has ACL,
>> because there is no way to figure that out based on the file mode
>> itself. Make the manual page match reality.
>
> Yep, that '+' is why libarchive has a custom strmode() that accepts more
> information than just the mode.
>
> A related issue: It would be really nice to be able to find out whether a
> file had extended ACLs or extended attributes based on the information
> returned from stat(2). That would allow programs like tar to avoid a fair
> number of system calls. Even just a single bit "HAS_EXTENSIONS" would help a
> lot, since most files don't have any extended ACLs or extended attributes.
> It would also allow users of strmode() (such as ls) to insert that '+' sign
> themselves.
>
> The only place I see to do this is to appropriate some bits from st_flags.
Kirk, Poul-Henning, and I discussed precisely this during the initial UFS2
design session. The idea was that we'd allocate a system flag that was
essentially a "there are ACL-related extended attributes", which could be used
in-kernel to avoid EA reads, and from userspace to avoid (or trigger) ACL
reads. I still think it would be a good idea to do this, although we might
want to think a bit about failure modes if there's a crash between EA update
and inode update.
Robert N M Watson
Computer Laboratory
University of Cambridge
More information about the svn-src-all
mailing list