summaryrefslogtreecommitdiffstats
path: root/sys
diff options
context:
space:
mode:
Diffstat (limited to 'sys')
-rw-r--r--sys/cddl/compat/opensolaris/kern/opensolaris_acl.c2
-rw-r--r--sys/cddl/contrib/opensolaris/uts/common/sys/acl.h3
-rw-r--r--sys/kern/subr_acl_nfs4.c1
-rw-r--r--sys/sys/acl.h3
4 files changed, 7 insertions, 2 deletions
diff --git a/sys/cddl/compat/opensolaris/kern/opensolaris_acl.c b/sys/cddl/compat/opensolaris/kern/opensolaris_acl.c
index c10b101..0bbad36 100644
--- a/sys/cddl/compat/opensolaris/kern/opensolaris_acl.c
+++ b/sys/cddl/compat/opensolaris/kern/opensolaris_acl.c
@@ -64,6 +64,8 @@ struct zfs2bsd flags[] = {{ACE_FILE_INHERIT_ACE,
ACL_ENTRY_NO_PROPAGATE_INHERIT},
{ACE_INHERIT_ONLY_ACE,
ACL_ENTRY_INHERIT_ONLY},
+ {ACE_INHERITED_ACE,
+ ACL_ENTRY_INHERITED},
{ACE_SUCCESSFUL_ACCESS_ACE_FLAG,
ACL_ENTRY_SUCCESSFUL_ACCESS},
{ACE_FAILED_ACCESS_ACE_FLAG,
diff --git a/sys/cddl/contrib/opensolaris/uts/common/sys/acl.h b/sys/cddl/contrib/opensolaris/uts/common/sys/acl.h
index 991978e..768ccdf 100644
--- a/sys/cddl/contrib/opensolaris/uts/common/sys/acl.h
+++ b/sys/cddl/contrib/opensolaris/uts/common/sys/acl.h
@@ -187,11 +187,12 @@ typedef struct ace_object {
ACE_DIRECTORY_INHERIT_ACE | \
ACE_NO_PROPAGATE_INHERIT_ACE | \
ACE_INHERIT_ONLY_ACE | \
+ ACE_INHERITED_ACE | \
ACE_IDENTIFIER_GROUP)
#define ACE_TYPE_FLAGS (ACE_OWNER|ACE_GROUP|ACE_EVERYONE| \
ACE_IDENTIFIER_GROUP)
-#define ACE_INHERIT_FLAGS (ACE_FILE_INHERIT_ACE| \
+#define ACE_INHERIT_FLAGS (ACE_FILE_INHERIT_ACE| ACL_INHERITED_ACE| \
ACE_DIRECTORY_INHERIT_ACE|ACE_NO_PROPAGATE_INHERIT_ACE|ACE_INHERIT_ONLY_ACE)
/* cmd args to acl(2) for aclent_t */
diff --git a/sys/kern/subr_acl_nfs4.c b/sys/kern/subr_acl_nfs4.c
index ef378a0..3e23579 100644
--- a/sys/kern/subr_acl_nfs4.c
+++ b/sys/kern/subr_acl_nfs4.c
@@ -1068,6 +1068,7 @@ acl_nfs4_inherit_entries(const struct acl *parent_aclp,
child_aclp->acl_cnt++;
entry->ae_flags &= ~ACL_ENTRY_INHERIT_ONLY;
+ entry->ae_flags |= ACL_ENTRY_INHERITED;
/*
* If the type of the ACE is neither ALLOW nor DENY,
diff --git a/sys/sys/acl.h b/sys/sys/acl.h
index 2f8715d..9806a54 100644
--- a/sys/sys/acl.h
+++ b/sys/sys/acl.h
@@ -249,11 +249,12 @@ typedef void *acl_t;
#define ACL_ENTRY_INHERIT_ONLY 0x0008
#define ACL_ENTRY_SUCCESSFUL_ACCESS 0x0010
#define ACL_ENTRY_FAILED_ACCESS 0x0020
+#define ACL_ENTRY_INHERITED 0x0080
#define ACL_FLAGS_BITS (ACL_ENTRY_FILE_INHERIT | \
ACL_ENTRY_DIRECTORY_INHERIT | ACL_ENTRY_NO_PROPAGATE_INHERIT | \
ACL_ENTRY_INHERIT_ONLY | ACL_ENTRY_SUCCESSFUL_ACCESS | \
- ACL_ENTRY_FAILED_ACCESS)
+ ACL_ENTRY_FAILED_ACCESS | ACL_ENTRY_INHERITED)
/*
* Undefined value in ae_id field. ae_id should be set to this value
OpenPOWER on IntegriCloud