Author: jra Date: 2006-03-25 02:43:42 +0000 (Sat, 25 Mar 2006) New Revision: 14706
WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=14706 Log: Remember to treat Windows and POSIX locks differently on query. Jeremy. Modified: trunk/source/locking/brlock.c Changeset: Modified: trunk/source/locking/brlock.c =================================================================== --- trunk/source/locking/brlock.c 2006-03-25 02:35:40 UTC (rev 14705) +++ trunk/source/locking/brlock.c 2006-03-25 02:43:42 UTC (rev 14706) @@ -1119,14 +1119,20 @@ /* Make sure existing locks don't conflict */ for (i=0; i < br_lck->num_locks; i++) { - /* - * Our own locks don't conflict. - */ - if (brl_conflict_other(&locks[i], &lock)) { - *psmbpid = locks[i].context.smbpid; - *pstart = locks[i].start; - *psize = locks[i].size; - *plock_type = locks[i].lock_type = *plock_type; + struct lock_struct *exlock = &locks[i]; + BOOL conflict = False; + + if (exlock->lock_flav == WINDOWS_LOCK) { + conflict = brl_conflict(exlock, &lock); + } else { + conflict = brl_conflict_posix(exlock, &lock); + } + + if (conflict) { + *psmbpid = exlock->context.smbpid; + *pstart = exlock->start; + *psize = exlock->size; + *plock_type = exlock->lock_type; return NT_STATUS_LOCK_NOT_GRANTED; } }
