The branch, v3-6-test has been updated
       via  f74e696 s3: Cope with EINTR in smbd_[un]lock_socket (cherry picked 
from commit da00021a7c236f9ac87442b96881bf0b2701ad0b)
       via  e245b70 s3: Add some DEBUG
      from  f91c4b0 Add deadtime detection for SMB2. Correctly update lastused 
timestamp across all active tcons. Should fix dfree cache not updating bug.

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=v3-6-test


- Log -----------------------------------------------------------------
commit f74e6964db8748015ec1084441e66fc688e11c0b
Author: Volker Lendecke <v...@samba.org>
Date:   Tue Oct 19 08:53:21 2010 +0200

    s3: Cope with EINTR in smbd_[un]lock_socket
    (cherry picked from commit da00021a7c236f9ac87442b96881bf0b2701ad0b)

commit e245b701ec6af2398dc920d1adcefa8bc6079240
Author: Volker Lendecke <v...@samba.org>
Date:   Tue Oct 19 08:59:14 2010 +0200

    s3: Add some DEBUG
    
    Autobuild-User: Volker Lendecke <vlen...@samba.org>
    Autobuild-Date: Wed Oct 20 11:58:20 UTC 2010 on sn-devel-104
    (cherry picked from commit efb22bf782fe49ca60650c87a0ead8ae93c06eca)

-----------------------------------------------------------------------

Summary of changes:
 source3/smbd/process.c |   14 ++++++++++++--
 1 files changed, 12 insertions(+), 2 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source3/smbd/process.c b/source3/smbd/process.c
index 780b97d..0416a8b 100644
--- a/source3/smbd/process.c
+++ b/source3/smbd/process.c
@@ -59,9 +59,14 @@ static bool smbd_lock_socket_internal(struct 
smbd_server_connection *sconn)
 
        DEBUG(10,("pid[%d] wait for socket lock\n", (int)sys_getpid()));
 
-       ok = fcntl_lock(sconn->smb1.echo_handler.socket_lock_fd,
+       do {
+               ok = fcntl_lock(
+                       sconn->smb1.echo_handler.socket_lock_fd,
                        SMB_F_SETLKW, 0, 0, F_WRLCK);
+       } while (!ok && (errno == EINTR));
+
        if (!ok) {
+               DEBUG(1, ("fcntl_lock failed: %s\n", strerror(errno)));
                return false;
        }
 
@@ -91,9 +96,14 @@ static bool smbd_unlock_socket_internal(struct 
smbd_server_connection *sconn)
                return true;
        }
 
-       ok = fcntl_lock(sconn->smb1.echo_handler.socket_lock_fd,
+       do {
+               ok = fcntl_lock(
+                       sconn->smb1.echo_handler.socket_lock_fd,
                        SMB_F_SETLKW, 0, 0, F_UNLCK);
+       } while (!ok && (errno == EINTR));
+
        if (!ok) {
+               DEBUG(1, ("fcntl_lock failed: %s\n", strerror(errno)));
                return false;
        }
 


-- 
Samba Shared Repository

Reply via email to