Loading fs/cifs/cifsfs.c +17 −2 Original line number Diff line number Diff line Loading @@ -407,9 +407,24 @@ static struct quotactl_ops cifs_quotactl_ops = { static void cifs_umount_begin(struct super_block * sblock) { cERROR(1,("kill all tasks now - umount begin not implemented yet")); struct cifs_sb_info *cifs_sb; cifs_sb = CIFS_SB(sb); if(cifs_sb == NULL) return -EIO; if(cifs_sb->tcon == NULL) return -EIO; down(&tcon->tconSem); if (atomic_read(&tcon->useCount) == 1) tcon->tidStatus = CifsExiting; up(&tcon->tconSem); /* BB FIXME - finish BB */ if((cifs->sb->tcon->ses) && (cifs_sb->tcon->ses->server)) { cERROR(1,("wake up tasks now - umount begin not complete")); wake_up_all(&server->request_q); } /* BB FIXME - finish add checks for tidStatus BB */ return; } Loading fs/cifs/transport.c +3 −0 Original line number Diff line number Diff line Loading @@ -169,6 +169,8 @@ smb_send(struct socket *ssocket, struct smb_hdr *smb_buffer, } if (rc < 0) break; else i = 0; /* reset i after each successful send */ iov.iov_base += rc; iov.iov_len -= rc; len -= rc; Loading Loading @@ -263,6 +265,7 @@ smb_send2(struct socket *ssocket, struct kvec *iov, int n_vec, } } } i = 0; /* in case we get ENOSPC on the next send */ } if (rc < 0) { Loading Loading
fs/cifs/cifsfs.c +17 −2 Original line number Diff line number Diff line Loading @@ -407,9 +407,24 @@ static struct quotactl_ops cifs_quotactl_ops = { static void cifs_umount_begin(struct super_block * sblock) { cERROR(1,("kill all tasks now - umount begin not implemented yet")); struct cifs_sb_info *cifs_sb; cifs_sb = CIFS_SB(sb); if(cifs_sb == NULL) return -EIO; if(cifs_sb->tcon == NULL) return -EIO; down(&tcon->tconSem); if (atomic_read(&tcon->useCount) == 1) tcon->tidStatus = CifsExiting; up(&tcon->tconSem); /* BB FIXME - finish BB */ if((cifs->sb->tcon->ses) && (cifs_sb->tcon->ses->server)) { cERROR(1,("wake up tasks now - umount begin not complete")); wake_up_all(&server->request_q); } /* BB FIXME - finish add checks for tidStatus BB */ return; } Loading
fs/cifs/transport.c +3 −0 Original line number Diff line number Diff line Loading @@ -169,6 +169,8 @@ smb_send(struct socket *ssocket, struct smb_hdr *smb_buffer, } if (rc < 0) break; else i = 0; /* reset i after each successful send */ iov.iov_base += rc; iov.iov_len -= rc; len -= rc; Loading Loading @@ -263,6 +265,7 @@ smb_send2(struct socket *ssocket, struct kvec *iov, int n_vec, } } } i = 0; /* in case we get ENOSPC on the next send */ } if (rc < 0) { Loading