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