nfs4_acls: pass ACE_FLAG_INHERITED_ACE up to the client
authorGregor Beck <gbeck@sernet.de>
Mon, 23 May 2011 12:27:11 +0000 (14:27 +0200)
committerMichael Adam <obnox@samba.org>
Mon, 30 May 2011 15:42:27 +0000 (17:42 +0200)
Signed-off-by: Michael Adam <obnox@samba.org>
source3/modules/nfs4_acls.c
source3/modules/nfs4_acls.h

index c841d83db2688b599d3f1815aaa384234d81139c..32af896eb75b225afb851229b5e2feb80fd4ac52 100644 (file)
@@ -272,6 +272,9 @@ static bool smbacl4_nfs42win(TALLOC_CTX *mem_ctx, SMB4ACL_T *theacl, /* in */
                }
 
                mapped_ace_flags = ace->aceFlags & 0xf;
+               if (ace->aceFlags & SMB_ACE4_INHERITED_ACE) {
+                       mapped_ace_flags |= SEC_ACE_FLAG_INHERITED_ACE;
+               }
                if (!is_directory && (mapped_ace_flags & (SMB_ACE4_FILE_INHERIT_ACE|SMB_ACE4_DIRECTORY_INHERIT_ACE))) {
                        /*
                         * GPFS sets inherits dir_inhert and file_inherit flags
index f4576b0c1372310ebe059014e3e27ca24d511ba4..fcab63591547af17d5380d0c58730f440efedc0b 100644 (file)
@@ -76,9 +76,10 @@ typedef struct _SMB_ACE4PROP_T {
 #define SMB_ACE4_SUCCESSFUL_ACCESS_ACE_FLAG   0x00000010
 #define SMB_ACE4_FAILED_ACCESS_ACE_FLAG       0x00000020
 #define SMB_ACE4_IDENTIFIER_GROUP             0x00000040
+#define SMB_ACE4_INHERITED_ACE                0x00000080
 #define SMB_ACE4_ALL_FLAGS     ( SMB_ACE4_FILE_INHERIT_ACE | SMB_ACE4_DIRECTORY_INHERIT_ACE \
 | SMB_ACE4_NO_PROPAGATE_INHERIT_ACE | SMB_ACE4_INHERIT_ONLY_ACE | SMB_ACE4_SUCCESSFUL_ACCESS_ACE_FLAG \
-| SMB_ACE4_FAILED_ACCESS_ACE_FLAG | SMB_ACE4_IDENTIFIER_GROUP )
+| SMB_ACE4_FAILED_ACCESS_ACE_FLAG | SMB_ACE4_IDENTIFIER_GROUP | SMB_ACE4_INHERITED_ACE)
 
        uint32  aceMask;        /* Access rights */
 /*The bitmask constants used for the access mask field are as follows: */