diff options
author | Jeremy Allison <jra@samba.org> | 2002-03-13 20:28:19 +0000 |
---|---|---|
committer | Jeremy Allison <jra@samba.org> | 2002-03-13 20:28:19 +0000 |
commit | 5e3b923124e82b1d19875746676df13cfdb0f918 (patch) | |
tree | 0ed715a7a0e2411dfb5b5a732278fc5eb9be3832 /source3/include | |
parent | 2001b83faa9f0438adda40ffe12fea4a3dc6a733 (diff) | |
download | samba-5e3b923124e82b1d19875746676df13cfdb0f918.tar.gz samba-5e3b923124e82b1d19875746676df13cfdb0f918.tar.bz2 samba-5e3b923124e82b1d19875746676df13cfdb0f918.zip |
include/smb_macros.h: Don't round up an allocation if the size is zero.
"One of these locks is not like the others... One of these locks is not
quite the same" :-). When is a zero timeout lock not zero ? When it's
being processed by Windows 2000 of course.. This code change, ugly though
it is - completely fixes the foxpro/access multi-user file system database
problems that people have been having. I used a *wonderful* test program
donated by "Gerald Drouillard" <gerald@drouillard.ca> which allowed me
to completely reproduce this problem, and to finally determine the correct
fix. This also explains why Windows 2000 is *so slow* when responding to
the smbtorture lock tests. I *love* it when all these things come together
and finally make sense :-).
Jeremy.
(This used to be commit 8aa9860ea2ea7f5aed4b6aa12794fffdfa81b0d0)
Diffstat (limited to 'source3/include')
-rw-r--r-- | source3/include/smb_macros.h | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/source3/include/smb_macros.h b/source3/include/smb_macros.h index 3fdd90f510..c19be784a1 100644 --- a/source3/include/smb_macros.h +++ b/source3/include/smb_macros.h @@ -166,7 +166,7 @@ #define UNIXERROR(defclass,deferror) unix_error_packet(outbuf,defclass,deferror,__LINE__,__FILE__) #define SMB_ROUNDUP(x,g) (((x)+((g)-1))&~((g)-1)) -#define SMB_ROUNDUP_ALLOCATION(s) (SMB_ROUNDUP((SMB_OFF_T)((s)+1), ((SMB_OFF_T)SMB_ROUNDUP_ALLOCATION_SIZE))) +#define SMB_ROUNDUP_ALLOCATION(s) ((s) ? (SMB_ROUNDUP((SMB_OFF_T)((s)+1), ((SMB_OFF_T)SMB_ROUNDUP_ALLOCATION_SIZE))) : 0 ) /* Extra macros added by Ying Chen at IBM - speed increase by inlining. */ #define smb_buf(buf) (buf + smb_size + CVAL(buf,smb_wct)*2) |