Andrew 66e6d3f128
Fix regression in POSIX mode behavior
Commit 235a85657 introduced a regression in evaluation of POSIX modes
that require group DENY entries in the internal ZFS ACL. An example
of such a POSX mode is 007. When write_implies_delete_child is set,
then ACE_WRITE_DATA is added to `wanted_dirperms` in prior to calling
zfs_zaccess_common(). This occurs is zfs_zaccess_delete().

Unfortunately, when zfs_zaccess_aces_check hits this particular DENY
ACE, zfs_groupmember() is checked to determine whether access should be
denied, and since zfs_groupmember() always returns B_TRUE on Linux and
so this check is failed, resulting ultimately in EPERM being returned.

Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Reviewed-by: Ryan Moeller <ryan@iXsystems.com>
Signed-off-by: Andrew Walker <awalker@ixsystems.com>
Closes #11760
2021-03-19 22:50:46 -07:00
..
2021-01-26 16:12:10 -08:00
2021-01-20 21:27:30 -08:00
2021-01-26 16:12:26 -08:00
2020-09-02 09:42:12 -07:00
2021-03-19 22:38:44 -07:00
2020-06-10 09:24:15 -07:00
2020-10-02 17:44:10 -07:00
2021-03-19 22:50:46 -07:00
2020-06-10 09:24:15 -07:00
2020-08-20 10:30:06 -07:00