diff options
author | Jeremy Allison <jra@samba.org> | 2002-05-22 23:34:47 +0000 |
---|---|---|
committer | Jeremy Allison <jra@samba.org> | 2002-05-22 23:34:47 +0000 |
commit | a3c98a841bcedf72ce513917707b5799c37abb95 (patch) | |
tree | e8e703d58f0537c8a12c410ba655a48ced04a8fd /source3/smbd | |
parent | 8955286b321db3b3283e99706cf294f191cdcc78 (diff) | |
download | samba-a3c98a841bcedf72ce513917707b5799c37abb95.tar.gz samba-a3c98a841bcedf72ce513917707b5799c37abb95.tar.bz2 samba-a3c98a841bcedf72ce513917707b5799c37abb95.zip |
Merge of bugfixes from 2.2.
Jeremy.
(This used to be commit 5c8351228c55f2403214351f6fd16fe231aee917)
Diffstat (limited to 'source3/smbd')
-rw-r--r-- | source3/smbd/oplock.c | 10 | ||||
-rw-r--r-- | source3/smbd/process.c | 4 |
2 files changed, 8 insertions, 6 deletions
diff --git a/source3/smbd/oplock.c b/source3/smbd/oplock.c index 6a47791300..9bc7d64381 100644 --- a/source3/smbd/oplock.c +++ b/source3/smbd/oplock.c @@ -99,6 +99,11 @@ BOOL receive_local_message( char *buffer, int buffer_len, int timeout) if (selrtn == -1 && errno == EINTR) { + /* could be a kernel oplock interrupt */ + if (koplocks && koplocks->msg_waiting(&fds)) { + return koplocks->receive_message(&fds, buffer, buffer_len); + } + /* * Linux 2.0.x seems to have a bug in that * it can return -1, EINTR with a timeout of zero. @@ -111,11 +116,6 @@ BOOL receive_local_message( char *buffer, int buffer_len, int timeout) return False; } - - /* could be a kernel oplock interrupt */ - if (koplocks && koplocks->msg_waiting(&fds)) { - return koplocks->receive_message(&fds, buffer, buffer_len); - } /* Not a kernel interrupt - could be a SIGUSR1 message. We must restart. */ /* We need to decrement the timeout here. */ timeout -= ((time(NULL) - starttime)*1000); diff --git a/source3/smbd/process.c b/source3/smbd/process.c index 53f9ff035f..010b188701 100644 --- a/source3/smbd/process.c +++ b/source3/smbd/process.c @@ -111,8 +111,10 @@ BOOL push_oplock_pending_smb_message(char *buf, int msg_len) static void async_processing(char *buffer, int buffer_len) { + DEBUG(10,("async_processing: Doing async processing.\n")); + /* check for oplock messages (both UDP and kernel) */ - if (receive_local_message(buffer, buffer_len, 0)) { + if (receive_local_message(buffer, buffer_len, 1)) { process_local_message(buffer, buffer_len); } |