diff options
-rw-r--r-- | source3/smbd/process.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/source3/smbd/process.c b/source3/smbd/process.c index 28c2cd65dd..ecb33453c5 100644 --- a/source3/smbd/process.c +++ b/source3/smbd/process.c @@ -514,6 +514,19 @@ static BOOL receive_message_or_smb(char *buffer, int buffer_len, int timeout) */ goto again; } + + if ((change_notify_fd() >= 0) && FD_ISSET(change_notify_fd(), &fds)) { + + process_pending_change_notify_queue((time_t)0); + + /* + * Same comment as for oplock processing applies here. We + * might have done I/O on the client socket. + */ + + goto again; + } + return receive_smb(smbd_server_fd(), buffer, 0); } |