Loading fs/cifs/connect.c +10 −1 Original line number Original line Diff line number Diff line Loading @@ -1785,7 +1785,16 @@ cifs_mount(struct super_block *sb, struct cifs_sb_info *cifs_sb, } else if(volume_info.wsize) } else if(volume_info.wsize) cifs_sb->wsize = volume_info.wsize; cifs_sb->wsize = volume_info.wsize; else else cifs_sb->wsize = CIFSMaxBufSize; /* default */ cifs_sb->wsize = min_t(const int, PAGEVEC_SIZE * PAGE_CACHE_SIZE, 127*1024); /* old default of CIFSMaxBufSize was too small now that SMB Write2 can send multiple pages in kvec. RFC1001 does not describe what happens when frame bigger than 128K is sent so use that as max in conjunction with 52K kvec constraint on arch with 4K page size */ if(cifs_sb->rsize < PAGE_CACHE_SIZE) { if(cifs_sb->rsize < PAGE_CACHE_SIZE) { cifs_sb->rsize = PAGE_CACHE_SIZE; cifs_sb->rsize = PAGE_CACHE_SIZE; /* Windows ME does this */ /* Windows ME does this */ Loading fs/cifs/file.c +7 −1 Original line number Original line Diff line number Diff line Loading @@ -1190,7 +1190,6 @@ retry: /* BB what if continued retry is /* BB what if continued retry is requested via mount flags? */ requested via mount flags? */ set_bit(AS_EIO, &mapping->flags); set_bit(AS_EIO, &mapping->flags); SetPageError(page); } else { } else { cifs_stats_bytes_written(cifs_sb->tcon, cifs_stats_bytes_written(cifs_sb->tcon, bytes_written); bytes_written); Loading @@ -1198,6 +1197,13 @@ retry: } } for (i = 0; i < n_iov; i++) { for (i = 0; i < n_iov; i++) { page = pvec.pages[first + i]; page = pvec.pages[first + i]; /* Should we also set page error on success rc but too little data written? */ /* BB investigate retry logic on temporary server crash cases and how recovery works when page marked as error */ if(rc) SetPageError(page); kunmap(page); kunmap(page); unlock_page(page); unlock_page(page); page_cache_release(page); page_cache_release(page); Loading fs/cifs/transport.c +0 −1 Original line number Original line Diff line number Diff line Loading @@ -498,7 +498,6 @@ SendReceive2(const unsigned int xid, struct cifsSesInfo *ses, else else *pRespBufType = CIFS_SMALL_BUFFER; *pRespBufType = CIFS_SMALL_BUFFER; iov[0].iov_len = receive_len + 4; iov[0].iov_len = receive_len + 4; iov[1].iov_len = 0; dump_smb(midQ->resp_buf, 80); dump_smb(midQ->resp_buf, 80); /* convert the length into a more usable form */ /* convert the length into a more usable form */ Loading Loading
fs/cifs/connect.c +10 −1 Original line number Original line Diff line number Diff line Loading @@ -1785,7 +1785,16 @@ cifs_mount(struct super_block *sb, struct cifs_sb_info *cifs_sb, } else if(volume_info.wsize) } else if(volume_info.wsize) cifs_sb->wsize = volume_info.wsize; cifs_sb->wsize = volume_info.wsize; else else cifs_sb->wsize = CIFSMaxBufSize; /* default */ cifs_sb->wsize = min_t(const int, PAGEVEC_SIZE * PAGE_CACHE_SIZE, 127*1024); /* old default of CIFSMaxBufSize was too small now that SMB Write2 can send multiple pages in kvec. RFC1001 does not describe what happens when frame bigger than 128K is sent so use that as max in conjunction with 52K kvec constraint on arch with 4K page size */ if(cifs_sb->rsize < PAGE_CACHE_SIZE) { if(cifs_sb->rsize < PAGE_CACHE_SIZE) { cifs_sb->rsize = PAGE_CACHE_SIZE; cifs_sb->rsize = PAGE_CACHE_SIZE; /* Windows ME does this */ /* Windows ME does this */ Loading
fs/cifs/file.c +7 −1 Original line number Original line Diff line number Diff line Loading @@ -1190,7 +1190,6 @@ retry: /* BB what if continued retry is /* BB what if continued retry is requested via mount flags? */ requested via mount flags? */ set_bit(AS_EIO, &mapping->flags); set_bit(AS_EIO, &mapping->flags); SetPageError(page); } else { } else { cifs_stats_bytes_written(cifs_sb->tcon, cifs_stats_bytes_written(cifs_sb->tcon, bytes_written); bytes_written); Loading @@ -1198,6 +1197,13 @@ retry: } } for (i = 0; i < n_iov; i++) { for (i = 0; i < n_iov; i++) { page = pvec.pages[first + i]; page = pvec.pages[first + i]; /* Should we also set page error on success rc but too little data written? */ /* BB investigate retry logic on temporary server crash cases and how recovery works when page marked as error */ if(rc) SetPageError(page); kunmap(page); kunmap(page); unlock_page(page); unlock_page(page); page_cache_release(page); page_cache_release(page); Loading
fs/cifs/transport.c +0 −1 Original line number Original line Diff line number Diff line Loading @@ -498,7 +498,6 @@ SendReceive2(const unsigned int xid, struct cifsSesInfo *ses, else else *pRespBufType = CIFS_SMALL_BUFFER; *pRespBufType = CIFS_SMALL_BUFFER; iov[0].iov_len = receive_len + 4; iov[0].iov_len = receive_len + 4; iov[1].iov_len = 0; dump_smb(midQ->resp_buf, 80); dump_smb(midQ->resp_buf, 80); /* convert the length into a more usable form */ /* convert the length into a more usable form */ Loading