Author: jmcd Date: 2007-01-12 21:56:25 +0000 (Fri, 12 Jan 2007) New Revision: 20717
WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=20717 Log: Merge sharemode patch from Mathias Dietz <[EMAIL PROTECTED]>. The patch fixes the behaviour of GPFS sharemodes when the access mask is no_access. Modified: branches/SAMBA_3_0/source/modules/gpfs.c branches/SAMBA_3_0_24/source/modules/gpfs.c Changeset: Modified: branches/SAMBA_3_0/source/modules/gpfs.c =================================================================== --- branches/SAMBA_3_0/source/modules/gpfs.c 2007-01-12 17:58:38 UTC (rev 20716) +++ branches/SAMBA_3_0/source/modules/gpfs.c 2007-01-12 21:56:25 UTC (rev 20717) @@ -52,11 +52,16 @@ 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)); Modified: branches/SAMBA_3_0_24/source/modules/gpfs.c =================================================================== --- branches/SAMBA_3_0_24/source/modules/gpfs.c 2007-01-12 17:58:38 UTC (rev 20716) +++ branches/SAMBA_3_0_24/source/modules/gpfs.c 2007-01-12 21:56:25 UTC (rev 20717) @@ -52,11 +52,16 @@ 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));