Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 086486e4 authored by Linus Torvalds's avatar Linus Torvalds
Browse files

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
parents a95251b8 c772aa92
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -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 @@ static int cifs_writepages(struct address_space *mapping,
			 */
			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 @@ static int cifs_writepages(struct address_space *mapping,
		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;
+1 −2
Original line number Diff line number Diff line
@@ -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);