1
0
mirror of https://github.com/samba-team/samba.git synced 2025-01-29 21:47:30 +03:00

When checking is_locked() new WRITE locks conflict with existing READ locks even

if the context is the same. See LOCKTEST7 in smbtorture.
Jeremy.
(This used to be commit b362cc241b829f585a96b5d285ed12db50b21e2e)
This commit is contained in:
Jeremy Allison 2003-02-22 01:09:42 +00:00
parent ca2e995576
commit 4fdb86eb3b

View File

@ -151,9 +151,16 @@ static BOOL brl_conflict_other(struct lock_struct *lck1, struct lock_struct *lck
if (lck1->lock_type == READ_LOCK && lck2->lock_type == READ_LOCK)
return False;
if (brl_same_context(&lck1->context, &lck2->context) &&
lck1->fnum == lck2->fnum)
return False;
/*
* Incoming WRITE locks conflict with existing READ locks even
* if the context is the same. JRA. See LOCKTEST7 in smbtorture.
*/
if (!(lck2->lock_type == WRITE_LOCK && lck1->lock_type == READ_LOCK)) {
if (brl_same_context(&lck1->context, &lck2->context) &&
lck1->fnum == lck2->fnum)
return False;
}
if (lck1->start >= (lck2->start + lck2->size) ||
lck2->start >= (lck1->start + lck1->size)) return False;