diff options
author | Jeremy Allison <jra@samba.org> | 2002-07-19 17:14:19 +0000 |
---|---|---|
committer | Jeremy Allison <jra@samba.org> | 2002-07-19 17:14:19 +0000 |
commit | 80c8fe63d2d2149ff9d2294da281d61a683e27ea (patch) | |
tree | 9b0b29b10e3ae78655c7c7bf5587c8b3ea6b0f21 | |
parent | 5f894476d86fd5a5b453e7043e087714c9e1c6ef (diff) | |
download | samba-80c8fe63d2d2149ff9d2294da281d61a683e27ea.tar.gz samba-80c8fe63d2d2149ff9d2294da281d61a683e27ea.tar.bz2 samba-80c8fe63d2d2149ff9d2294da281d61a683e27ea.zip |
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 e3f7d6c03f100962395763a5066313d60b4761d0)
-rw-r--r-- | source3/smbd/nttrans.c | 8 | ||||
-rw-r--r-- | source3/smbd/process.c | 4 |
2 files changed, 7 insertions, 5 deletions
diff --git a/source3/smbd/nttrans.c b/source3/smbd/nttrans.c index e03588bf05..8f6b4ab374 100644 --- a/source3/smbd/nttrans.c +++ b/source3/smbd/nttrans.c @@ -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); diff --git a/source3/smbd/process.c b/source3/smbd/process.c index 43d3c6c531..0363165914 100644 --- a/source3/smbd/process.c +++ b/source3/smbd/process.c @@ -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}, |