+Version 0.89
+------------
+Fix oops on write to dead tcp session.
+
+Version 0.88
+------------
+Fix non-POSIX behavior on rename of open file and delete of open file by taking
+advantage of trans2 SetFileInfo rename facility if available on target server.
+Retry on ENOSPC and EAGAIN socket errors.
+
Version 0.87
------------
Fix oops on big endian readdir. Set blksize to be even power of two (2**blkbits) to fix
if (rc)
return rc;
+ /* tcon and ses pointer are checked in smb_init */
+ if (tcon->ses->server == NULL)
+ return -ECONNABORTED;
+
pSMB->AndXCommand = 0xFF; /* none */
pSMB->Fid = netfid;
pSMB->OffsetLow = cpu_to_le32(lseek & 0xFFFFFFFF);
(void **) &pSMBr);
if (rc)
return rc;
+ /* tcon and ses pointer are checked in smb_init */
+ if (tcon->ses->server == NULL)
+ return -ECONNABORTED;
pSMB->AndXCommand = 0xFF; /* none */
pSMB->Fid = netfid;
(checkSMBhdr
(smb_buffer, smb_buffer->Mid))) {
cERROR(1,
- (KERN_ERR
- "Invalid size or format for SMB found with length %d and pdu_lenght %d",
+ ("Invalid size or format for SMB found with length %d and pdu_lenght %d",
length, pdu_length));
+ cifs_dump_mem("Received Data is: ",temp,sizeof(struct smb_hdr));
/* BB fix by finding next smb signature - and reading off data until next smb ? BB */
/* BB add reconnect here */
for (temp = direntry; !IS_ROOT(temp);) {
namelen += (1 + temp->d_name.len);
- cFYI(1, (" len %d ", namelen));
temp = temp->d_parent;
}
namelen += 1; /* allow for trailing null */
temp_fs = get_fs(); /* we must turn off socket api parm checking */
set_fs(get_ds());
rc = sock_sendmsg(ssocket, &smb_msg, smb_buf_length + 4);
- while(rc == -ENOSPC) {
+ while((rc == -ENOSPC) || (rc == -EAGAIN)) {
schedule_timeout(HZ/2);
rc = sock_sendmsg(ssocket, &smb_msg, smb_buf_length + 4);
}