summaryrefslogtreecommitdiff
path: root/source3/smbd/oplock.c
diff options
context:
space:
mode:
Diffstat (limited to 'source3/smbd/oplock.c')
-rw-r--r--source3/smbd/oplock.c10
1 files changed, 5 insertions, 5 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);