From 11f0402a74640c6f32ae18c58b60d9d57932deab Mon Sep 17 00:00:00 2001 From: Jeremy Allison Date: Wed, 5 Sep 2001 22:45:48 +0000 Subject: Fix I think for the fcntl spinning problem. Re-prioritize so that oplock break messages get priority over incoming client messages. Jeremy. (This used to be commit 1779f6a223dad87c3b8451d09b9808b46495a8b6) --- source3/smbd/process.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'source3/smbd/process.c') diff --git a/source3/smbd/process.c b/source3/smbd/process.c index ce1e855e29..9f23c7d3be 100644 --- a/source3/smbd/process.c +++ b/source3/smbd/process.c @@ -223,7 +223,13 @@ static BOOL receive_message_or_smb(char *buffer, int buffer_len, int timeout) return False; } - if (!FD_ISSET(smbd_server_fd(),&fds) || selrtn > 1) { + /* + * Ensure we process oplock break messages by preference. + * This is IMPORTANT ! Otherwise we can starve other processes + * sending us an oplock break message. JRA. + */ + + if (oplock_message_waiting(&fds)) { async_processing(&fds, buffer, buffer_len); if (!FD_ISSET(smbd_server_fd(),&fds)) goto again; } -- cgit