Skip to content
Snippets Groups Projects
Commit 3ee50fae authored by rswindell's avatar rswindell
Browse files

Basically the same fix to smb_locksmbhdr(), if already locked, don't sleep.

parent 6e5e30b9
No related branches found
No related tags found
No related merge requests found
...@@ -352,8 +352,10 @@ int SMBCALL smb_locksmbhdr(smb_t* smb) ...@@ -352,8 +352,10 @@ int SMBCALL smb_locksmbhdr(smb_t* smb)
/* In case we've already locked it */ /* In case we've already locked it */
if(unlock(fileno(smb->shd_fp),0L,sizeof(smbhdr_t)+sizeof(smbstatus_t))==0) if(unlock(fileno(smb->shd_fp),0L,sizeof(smbhdr_t)+sizeof(smbstatus_t))==0)
smb->locked=FALSE; smb->locked=FALSE;
else {
SLEEP(smb->retry_delay); SLEEP(smb->retry_delay);
} }
}
safe_snprintf(smb->last_error,sizeof(smb->last_error),"timeout locking header"); safe_snprintf(smb->last_error,sizeof(smb->last_error),"timeout locking header");
return(SMB_ERR_TIMEOUT); return(SMB_ERR_TIMEOUT);
} }
...@@ -475,9 +477,10 @@ int SMBCALL smb_lockmsghdr(smb_t* smb, smbmsg_t* msg) ...@@ -475,9 +477,10 @@ int SMBCALL smb_lockmsghdr(smb_t* smb, smbmsg_t* msg)
if(time(NULL)-start>=(time_t)smb->retry_time) if(time(NULL)-start>=(time_t)smb->retry_time)
break; break;
/* In case we've already locked it */ /* In case we've already locked it */
if(unlock(fileno(smb->shd_fp),msg->idx.offset,sizeof(msghdr_t))!=0) if(unlock(fileno(smb->shd_fp),msg->idx.offset,sizeof(msghdr_t))!=0) {
SLEEP(smb->retry_delay); SLEEP(smb->retry_delay);
} }
}
safe_snprintf(smb->last_error,sizeof(smb->last_error),"timeout locking header"); safe_snprintf(smb->last_error,sizeof(smb->last_error),"timeout locking header");
return(SMB_ERR_TIMEOUT); return(SMB_ERR_TIMEOUT);
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment