1
0
mirror of https://github.com/samba-team/samba.git synced 2025-08-04 08:22:08 +03:00

Allow trans2 and nttrans messages to be processed in oplock break state.

As noticed by Lev Iserovich <lev@ciprico.com> this seems to fix a problem
with oplock breaks and Win2k, and we are protected from problems by existing
code in trans2.c and nttrans.c
Jeremy.
(This used to be commit e3f7d6c03f)
This commit is contained in:
Jeremy Allison
2002-07-19 17:14:19 +00:00
parent 5f894476d8
commit 80c8fe63d2
2 changed files with 7 additions and 5 deletions

View File

@ -1636,13 +1636,15 @@ int reply_nttrans(connection_struct *conn,
uint32 num_params_sofar, num_data_sofar;
START_PROFILE(SMBnttrans);
if(global_oplock_break && (function_code == NT_TRANSACT_CREATE)) {
if(global_oplock_break &&
((function_code == NT_TRANSACT_CREATE) ||
(function_code == NT_TRANSACT_RENAME))) {
/*
* Queue this open message as we are the process of an oplock break.
*/
DEBUG(2,("reply_nttrans: queueing message NT_TRANSACT_CREATE \
due to being in oplock break state.\n" ));
DEBUG(2,("reply_nttrans: queueing message code 0x%x \
due to being in oplock break state.\n", (unsigned int)function_code ));
push_oplock_pending_smb_message( inbuf, length);
END_PROFILE(SMBnttrans);

View File

@ -386,7 +386,7 @@ static struct smb_message_struct
/* 0x22 */ { "SMBsetattrE",reply_setattrE,AS_USER | NEED_WRITE },
/* 0x23 */ { "SMBgetattrE",reply_getattrE,AS_USER },
/* 0x24 */ { "SMBlockingX",reply_lockingX,AS_USER },
/* 0x25 */ { "SMBtrans",reply_trans,AS_USER | CAN_IPC | QUEUE_IN_OPLOCK},
/* 0x25 */ { "SMBtrans",reply_trans,AS_USER | CAN_IPC },
/* 0x26 */ { "SMBtranss",NULL,AS_USER | CAN_IPC},
/* 0x27 */ { "SMBioctl",reply_ioctl,0},
/* 0x28 */ { "SMBioctls",NULL,AS_USER},
@ -399,7 +399,7 @@ static struct smb_message_struct
/* 0x2f */ { "SMBwriteX",reply_write_and_X,AS_USER | CAN_IPC },
/* 0x30 */ { NULL, NULL, 0 },
/* 0x31 */ { NULL, NULL, 0 },
/* 0x32 */ { "SMBtrans2", reply_trans2, AS_USER | QUEUE_IN_OPLOCK | CAN_IPC },
/* 0x32 */ { "SMBtrans2", reply_trans2, AS_USER | CAN_IPC },
/* 0x33 */ { "SMBtranss2", reply_transs2, AS_USER},
/* 0x34 */ { "SMBfindclose", reply_findclose,AS_USER},
/* 0x35 */ { "SMBfindnclose", reply_findnclose, AS_USER},