|
Description
|
The acl_trivial() interface doesn't always determine trivialness correctly.
For example an ACL composed of the three entries such as:
$ ls -V file.3
-rwxrwxr-- 1 2147483649 2147483650 8 Feb 15 10:42 file.3
owner@:rwxp----------:------I:allow
group@:rwxp----------:------I:allow
everyone@:r-----a-R-c---:-------:allow
is being reported as a trivial ACL. This should be a non-trivial ACL, since there are no deny entries to prevent the owner or group owner from picking up read_attributes, read_acl, or read_xattr from the everyone@ entry.
ace_walk was called with these args:
ace_walk(ffffff01f3080fb0, 6, 6, fffffffffbc43c2c, fffffffffbc43c34)
Got the bufctl for ffffff01f3080fb0, and it shows that it was allocated from:
kmem_slab_alloc+159
kmem_cache_alloc+137
kmem_alloc+88
zfs`zfs_getacl+198
zfs`zfs_getsecattr+81
fop_getsecattr+8f
fs_acl_nontrivial+c4
devfs`dv_shadow_node+289
devfs`dv_find+4c2
devfs`devfs_lookup+39
fop_lookup+f2
...
ldi_vp_from_name+8f
|