From f169d83a8b707d6d480c456bf4e4ca7c85dadbae Mon Sep 17 00:00:00 2001 From: Andrew Tridgell Date: Thu, 25 Mar 2004 02:41:19 +0000 Subject: fixed the handling of level II oplocks in samba4, especially when acting as a cifs redirectory (using the cifs backend) (This used to be commit 06a8100e6a2f3f079af5b6ec32d87d1d25f56c3c) --- source4/libcli/raw/clioplock.c | 3 ++- source4/libcli/raw/rawrequest.c | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) (limited to 'source4/libcli') diff --git a/source4/libcli/raw/clioplock.c b/source4/libcli/raw/clioplock.c index 8f69716bda..f27bf937ce 100644 --- a/source4/libcli/raw/clioplock.c +++ b/source4/libcli/raw/clioplock.c @@ -33,7 +33,8 @@ BOOL cli_oplock_ack(struct cli_tree *tree, uint16 fnum, uint16 ack_level) SSVAL(req->out.vwv,VWV(0),0xFF); SSVAL(req->out.vwv,VWV(1),0); SSVAL(req->out.vwv,VWV(2),fnum); - SSVAL(req->out.vwv,VWV(3),ack_level); + SCVAL(req->out.vwv,VWV(3),LOCKING_ANDX_OPLOCK_RELEASE); + SCVAL(req->out.vwv,VWV(3)+1,ack_level); SIVAL(req->out.vwv,VWV(4),0); SSVAL(req->out.vwv,VWV(6),0); SSVAL(req->out.vwv,VWV(7),0); diff --git a/source4/libcli/raw/rawrequest.c b/source4/libcli/raw/rawrequest.c index 2b84345abb..f03cc5cf16 100644 --- a/source4/libcli/raw/rawrequest.c +++ b/source4/libcli/raw/rawrequest.c @@ -340,7 +340,7 @@ static BOOL handle_oplock_break(struct cli_transport *transport, uint_t len, con if (transport->oplock.handler) { uint16 tid = SVAL(hdr, HDR_TID); uint16 fnum = SVAL(vwv,VWV(2)); - uint8 level = CVAL(vwv,VWV(3)); + uint8 level = CVAL(vwv,VWV(3)+1); transport->oplock.handler(transport, tid, fnum, level, transport->oplock.private); } -- cgit