r20717: Merge sharemode patch from Mathias Dietz <MDIETZ@de.ibm.com>.
authorJim McDonough <jmcd@samba.org>
Fri, 12 Jan 2007 21:56:25 +0000 (21:56 +0000)
committerGerald (Jerry) Carter <jerry@samba.org>
Wed, 10 Oct 2007 17:17:04 +0000 (12:17 -0500)
The patch fixes the behaviour of GPFS sharemodes when
the access mask is no_access.
(This used to be commit 799967c66879b4d6e28f1af6ba27c67f0b1deaeb)

source3/modules/gpfs.c

index f63a85294b86d63f78b3da28940bf67e60f37924..3fec7a479ddf055ea04c3c41856fcd4c4d0a07b9 100644 (file)
@@ -52,11 +52,16 @@ BOOL set_gpfs_sharemode(files_struct *fsp, uint32 access_mask,
                                 DELETE_ACCESS)) ? GPFS_SHARE_WRITE : 0;
        allow |= (access_mask & (FILE_READ_DATA|FILE_EXECUTE)) ?
                GPFS_SHARE_READ : 0;
-       deny |= (share_access & (FILE_SHARE_WRITE|FILE_SHARE_DELETE)) ?
-               0 : GPFS_DENY_WRITE;
-       deny |= (share_access & (FILE_SHARE_READ)) ?
-               0 : GPFS_DENY_READ;
 
+       if (allow == GPFS_SHARE_NONE) {
+               DEBUG(10, ("special case am=no_access:%x\n",access_mask));
+       }
+       else {  
+               deny |= (share_access & (FILE_SHARE_WRITE|FILE_SHARE_DELETE)) ?
+                       0 : GPFS_DENY_WRITE;
+               deny |= (share_access & (FILE_SHARE_READ)) ?
+                       0 : GPFS_DENY_READ;
+       }
        DEBUG(10, ("am=%x, allow=%d, sa=%x, deny=%d\n",
                   access_mask, allow, share_access, deny));