Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge branch 'for-next' of git://git.samba.org/sfrench/cifs-2.6

Pull CIFS fixes from Steve French:
"A small set of cifs fixes which includes one for a recent regression
in the write path (pointed out by Anton), some fixes for rename
problems and as promised for 3.9 removing the obsolete sockopt mount
option (and the accompanying deprecation warning)."

* 'for-next' of git://git.samba.org/sfrench/cifs-2.6:
CIFS: Fix missing of oplock_read value in smb30_values structure
cifs: don't try to unlock pagecache page after releasing it
cifs: remove the sockopt= mount option
cifs: Check server capability before attempting silly rename
cifs: Fix bug when checking error condition in cifs_rename_pending_delete()

+13 -17
+1 -1
fs/cifs/cifssmb.c
··· 1909 1909 } while (rc == -EAGAIN); 1910 1910 1911 1911 for (i = 0; i < wdata->nr_pages; i++) { 1912 + unlock_page(wdata->pages[i]); 1912 1913 if (rc != 0) { 1913 1914 SetPageError(wdata->pages[i]); 1914 1915 end_page_writeback(wdata->pages[i]); 1915 1916 page_cache_release(wdata->pages[i]); 1916 1917 } 1917 - unlock_page(wdata->pages[i]); 1918 1918 } 1919 1919 1920 1920 mapping_set_error(inode->i_mapping, rc);
+1 -15
fs/cifs/connect.c
··· 97 97 Opt_user, Opt_pass, Opt_ip, 98 98 Opt_unc, Opt_domain, 99 99 Opt_srcaddr, Opt_prefixpath, 100 - Opt_iocharset, Opt_sockopt, 100 + Opt_iocharset, 101 101 Opt_netbiosname, Opt_servern, 102 102 Opt_ver, Opt_vers, Opt_sec, Opt_cache, 103 103 ··· 202 202 { Opt_srcaddr, "srcaddr=%s" }, 203 203 { Opt_prefixpath, "prefixpath=%s" }, 204 204 { Opt_iocharset, "iocharset=%s" }, 205 - { Opt_sockopt, "sockopt=%s" }, 206 205 { Opt_netbiosname, "netbiosname=%s" }, 207 206 { Opt_servern, "servern=%s" }, 208 207 { Opt_ver, "ver=%s" }, ··· 1750 1751 * is used by caller 1751 1752 */ 1752 1753 cFYI(1, "iocharset set to %s", string); 1753 - break; 1754 - case Opt_sockopt: 1755 - string = match_strdup(args); 1756 - if (string == NULL) 1757 - goto out_nomem; 1758 - 1759 - if (strnicmp(string, "TCP_NODELAY", 11) == 0) { 1760 - printk(KERN_WARNING "CIFS: the " 1761 - "sockopt=TCP_NODELAY option has been " 1762 - "deprecated and will be removed " 1763 - "in 3.9\n"); 1764 - vol->sockopt_tcp_nodelay = 1; 1765 - } 1766 1754 break; 1767 1755 case Opt_netbiosname: 1768 1756 string = match_strdup(args);
+10 -1
fs/cifs/inode.c
··· 995 995 return PTR_ERR(tlink); 996 996 tcon = tlink_tcon(tlink); 997 997 998 + /* 999 + * We cannot rename the file if the server doesn't support 1000 + * CAP_INFOLEVEL_PASSTHRU 1001 + */ 1002 + if (!(tcon->ses->capabilities & CAP_INFOLEVEL_PASSTHRU)) { 1003 + rc = -EBUSY; 1004 + goto out; 1005 + } 1006 + 998 1007 rc = CIFSSMBOpen(xid, tcon, full_path, FILE_OPEN, 999 1008 DELETE|FILE_WRITE_ATTRIBUTES, CREATE_NOT_DIR, 1000 1009 &netfid, &oplock, NULL, cifs_sb->local_nls, ··· 1032 1023 current->tgid); 1033 1024 /* although we would like to mark the file hidden 1034 1025 if that fails we will still try to rename it */ 1035 - if (rc != 0) 1026 + if (!rc) 1036 1027 cifsInode->cifsAttrs = dosattr; 1037 1028 else 1038 1029 dosattr = origattr; /* since not able to change them */
+1
fs/cifs/smb2ops.c
··· 744 744 .cap_unix = 0, 745 745 .cap_nt_find = SMB2_NT_FIND, 746 746 .cap_large_files = SMB2_LARGE_FILES, 747 + .oplock_read = SMB2_OPLOCK_LEVEL_II, 747 748 };