forked from Minki/linux
Merge branch 'for-linus' of git://git.samba.org/sfrench/cifs-2.6
Pull CIFS fixes from Steve French: "Two low risk, small fixes, that fix cifs regressions introduced in 3.7." * 'for-linus' of git://git.samba.org/sfrench/cifs-2.6: CIFS: Fix wrong buffer pointer usage in smb_set_file_info cifs: fix writeback race with file that is growing
This commit is contained in:
commit
086486e46e
@ -1794,7 +1794,6 @@ static int cifs_writepages(struct address_space *mapping,
|
||||
struct TCP_Server_Info *server;
|
||||
struct page *page;
|
||||
int rc = 0;
|
||||
loff_t isize = i_size_read(mapping->host);
|
||||
|
||||
/*
|
||||
* If wsize is smaller than the page cache size, default to writing
|
||||
@ -1899,7 +1898,7 @@ retry:
|
||||
*/
|
||||
set_page_writeback(page);
|
||||
|
||||
if (page_offset(page) >= isize) {
|
||||
if (page_offset(page) >= i_size_read(mapping->host)) {
|
||||
done = true;
|
||||
unlock_page(page);
|
||||
end_page_writeback(page);
|
||||
@ -1932,7 +1931,8 @@ retry:
|
||||
wdata->offset = page_offset(wdata->pages[0]);
|
||||
wdata->pagesz = PAGE_CACHE_SIZE;
|
||||
wdata->tailsz =
|
||||
min(isize - page_offset(wdata->pages[nr_pages - 1]),
|
||||
min(i_size_read(mapping->host) -
|
||||
page_offset(wdata->pages[nr_pages - 1]),
|
||||
(loff_t)PAGE_CACHE_SIZE);
|
||||
wdata->bytes = ((nr_pages - 1) * PAGE_CACHE_SIZE) +
|
||||
wdata->tailsz;
|
||||
|
@ -766,7 +766,6 @@ smb_set_file_info(struct inode *inode, const char *full_path,
|
||||
struct cifs_sb_info *cifs_sb = CIFS_SB(inode->i_sb);
|
||||
struct tcon_link *tlink = NULL;
|
||||
struct cifs_tcon *tcon;
|
||||
FILE_BASIC_INFO info_buf;
|
||||
|
||||
/* if the file is already open for write, just use that fileid */
|
||||
open_file = find_writable_file(cinode, true);
|
||||
@ -817,7 +816,7 @@ smb_set_file_info(struct inode *inode, const char *full_path,
|
||||
netpid = current->tgid;
|
||||
|
||||
set_via_filehandle:
|
||||
rc = CIFSSMBSetFileInfo(xid, tcon, &info_buf, netfid, netpid);
|
||||
rc = CIFSSMBSetFileInfo(xid, tcon, buf, netfid, netpid);
|
||||
if (!rc)
|
||||
cinode->cifsAttrs = le32_to_cpu(buf->Attributes);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user