]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
vfs_gpfs: Move mapping from access mask to sharemode allow to helper function
authorChristof Schmitt <cs@samba.org>
Mon, 30 Dec 2019 22:33:03 +0000 (15:33 -0700)
committerJeremy Allison <jra@samba.org>
Wed, 8 Jan 2020 00:01:36 +0000 (00:01 +0000)
Signed-off-by: Christof Schmitt <cs@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
source3/modules/vfs_gpfs.c

index dff2f204df371bb51e88fabdbd2e3f811578f4f2..c25a2b9e0562541e48319a049617c4247a4aae56 100644 (file)
@@ -77,6 +77,20 @@ static inline gpfs_ace_v4_t *gpfs_ace_ptr(gpfs_acl_t *gacl, unsigned int i)
        return &gacl->ace_v4[i];
 }
 
+static unsigned int vfs_gpfs_access_mask_to_allow(uint32_t access_mask)
+{
+       unsigned int allow = GPFS_SHARE_NONE;
+
+       if (access_mask & (FILE_WRITE_DATA|FILE_APPEND_DATA)) {
+               allow |= GPFS_SHARE_WRITE;
+       }
+       if (access_mask & (FILE_READ_DATA|FILE_EXECUTE)) {
+               allow |= GPFS_SHARE_READ;
+       }
+
+       return allow;
+}
+
 static bool set_gpfs_sharemode(files_struct *fsp, uint32_t access_mask,
                               uint32_t share_access)
 {
@@ -84,10 +98,7 @@ static bool set_gpfs_sharemode(files_struct *fsp, uint32_t access_mask,
        unsigned int deny = GPFS_DENY_NONE;
        int result;
 
-       allow |= (access_mask & (FILE_WRITE_DATA|FILE_APPEND_DATA)) ?
-               GPFS_SHARE_WRITE : 0;
-       allow |= (access_mask & (FILE_READ_DATA|FILE_EXECUTE)) ?
-               GPFS_SHARE_READ : 0;
+       allow = vfs_gpfs_access_mask_to_allow(access_mask);
 
        if (allow == GPFS_SHARE_NONE) {
                DEBUG(10, ("special case am=no_access:%x\n",access_mask));