Commit 7a396820 authored by Linus Torvalds's avatar Linus Torvalds
Browse files

Merge tag 'v6.8-rc-part2-smb-client' of git://git.samba.org/sfrench/cifs-2.6

Pull smb client updates from Steve French:
 "Various smb client fixes, including multichannel and for SMB3.1.1
  POSIX extensions:

   - debugging improvement (display start time for stats)

   - two reparse point handling fixes

   - various multichannel improvements and fixes

   - SMB3.1.1 POSIX extensions open/create parsing fix

   - retry (reconnect) improvement including new retrans mount parm, and
     handling of two additional return codes that need to be retried on

   - two minor cleanup patches and another to remove duplicate query
     info code

   - two documentation cleanup, and one reviewer email correction"

* tag 'v6.8-rc-part2-smb-client' of git://git.samba.org/sfrench/cifs-2.6:
  cifs: update iface_last_update on each query-and-update
  cifs: handle servers that still advertise multichannel after disabling
  cifs: new mount option called retrans
  cifs: reschedule periodic query for server interfaces
  smb: client: don't clobber ->i_rdev from cached reparse points
  smb: client: get rid of smb311_posix_query_path_info()
  smb: client: parse owner/group when creating reparse points
  smb: client: fix parsing of SMB3.1.1 POSIX create context
  cifs: update known bugs mentioned in kernel docs for cifs
  cifs: new nt status codes from MS-SMB2
  cifs: pick channel for tcon and tdis
  cifs: open_cached_dir should not rely on primary channel
  smb3: minor documentation updates
  Update MAINTAINERS email address
  cifs: minor comment cleanup
  smb3: show beginning time for per share stats
  cifs: remove redundant variable tcon_exist
parents 65163d16 78e727e5
Loading
Loading
Loading
Loading
+21 −23
Original line number Diff line number Diff line
@@ -2,7 +2,8 @@
TODO
====

Version 2.14 December 21, 2018
As of 6.7 kernel. See https://wiki.samba.org/index.php/LinuxCIFSKernel
for list of features added by release

A Partial List of Missing Features
==================================
@@ -12,19 +13,19 @@ for visible, important contributions to this module. Here
is a partial list of the known problems and missing features:

a) SMB3 (and SMB3.1.1) missing optional features:
   multichannel performance optimizations, algorithmic channel selection,
   directory leases optimizations,
   support for faster packet signing (GMAC),
   support for compression over the network,
   T10 copy offload ie "ODX" (copy chunk, and "Duplicate Extents" ioctl
   are currently the only two server side copy mechanisms supported)

   - multichannel (partially integrated), integration of multichannel with RDMA
   - directory leases (improved metadata caching). Currently only implemented for root dir
   - T10 copy offload ie "ODX" (copy chunk, and "Duplicate Extents" ioctl
     currently the only two server side copy mechanisms supported)
b) Better optimized compounding and error handling for sparse file support,
   perhaps addition of new optional SMB3.1.1 fsctls to make collapse range
   and insert range more atomic

b) improved sparse file support (fiemap and SEEK_HOLE are implemented
   but additional features would be supportable by the protocol such
   as FALLOC_FL_COLLAPSE_RANGE and FALLOC_FL_INSERT_RANGE)

c) Directory entry caching relies on a 1 second timer, rather than
   using Directory Leases, currently only the root file handle is cached longer
   by leveraging Directory Leases
c) Support for SMB3.1.1 over QUIC (and perhaps other socket based protocols
   like SCTP)

d) quota support (needs minor kernel change since quota calls otherwise
   won't make it to network filesystems or deviceless filesystems).
@@ -92,23 +93,20 @@ t) split cifs and smb3 support into separate modules so legacy (and less

v) Additional testing of POSIX Extensions for SMB3.1.1

w) Add support for additional strong encryption types, and additional spnego
   authentication mechanisms (see MS-SMB2).  GCM-256 is now partially implemented.
w) Support for the Mac SMB3.1.1 extensions to improve interop with Apple servers

x) Support for additional authentication options (e.g. IAKERB, peer-to-peer
   Kerberos, SCRAM and others supported by existing servers)

x) Finish support for SMB3.1.1 compression
y) Improved tracing, more eBPF trace points, better scripts for performance
   analysis

Known Bugs
==========

See https://bugzilla.samba.org - search on product "CifsVFS" for
current bug list.  Also check http://bugzilla.kernel.org (Product = File System, Component = CIFS)

1) existing symbolic links (Windows reparse points) are recognized but
   can not be created remotely. They are implemented for Samba and those that
   support the CIFS Unix extensions, although earlier versions of Samba
   overly restrict the pathnames.
2) follow_link and readdir code does not follow dfs junctions
   but recognizes them
and xfstest results e.g. https://wiki.samba.org/index.php/Xfstest-results-smb3

Misc testing to do
==================
+7 −1
Original line number Diff line number Diff line
@@ -81,7 +81,7 @@ much older and less secure than the default dialect SMB3 which includes
many advanced security features such as downgrade attack detection
and encrypted shares and stronger signing and authentication algorithms.
There are additional mount options that may be helpful for SMB3 to get
improved POSIX behavior (NB: can use vers=3.0 to force only SMB3, never 2.1):
improved POSIX behavior (NB: can use vers=3 to force SMB3 or later, never 2.1):

   ``mfsymlinks`` and either ``cifsacl`` or ``modefromsid`` (usually with ``idsfromsid``)

@@ -715,6 +715,7 @@ DebugData Displays information about active CIFS sessions and
Stats			Lists summary resource usage information as well as per
			share statistics.
open_files		List all the open file handles on all active SMB sessions.
mount_params            List of all mount parameters available for the module
======================= =======================================================

Configuration pseudo-files:
@@ -864,6 +865,11 @@ i.e.::

    echo "value" > /sys/module/cifs/parameters/<param>

More detailed descriptions of the available module parameters and their values
can be seen by doing:

    modinfo cifs (or modinfo smb3)

================= ==========================================================
1. enable_oplocks Enable or disable oplocks. Oplocks are enabled by default.
		  [Y/y/1]. To disable use any of [N/n/0].
+1 −1
Original line number Diff line number Diff line
@@ -5236,7 +5236,7 @@ X: drivers/clk/clkdev.c
COMMON INTERNET FILE SYSTEM CLIENT (CIFS and SMB3)
M:	Steve French <sfrench@samba.org>
R:	Paulo Alcantara <pc@manguebit.com> (DFS, global name space)
R:	Ronnie Sahlberg <lsahlber@redhat.com> (directory leases, sparse files)
R:	Ronnie Sahlberg <ronniesahlberg@gmail.com> (directory leases, sparse files)
R:	Shyam Prasad N <sprasad@microsoft.com> (multichannel)
R:	Tom Talpey <tom@talpey.com> (RDMA, smbdirect)
L:	linux-cifs@vger.kernel.org
+1 −1
Original line number Diff line number Diff line
@@ -151,7 +151,7 @@ int open_cached_dir(unsigned int xid, struct cifs_tcon *tcon,
		return -EOPNOTSUPP;

	ses = tcon->ses;
	server = ses->server;
	server = cifs_pick_channel(ses);
	cfids = tcon->cfids;

	if (!server->ops->new_lease_key)
+4 −2
Original line number Diff line number Diff line
@@ -659,6 +659,7 @@ static ssize_t cifs_stats_proc_write(struct file *file,
					spin_lock(&tcon->stat_lock);
					tcon->bytes_read = 0;
					tcon->bytes_written = 0;
					tcon->stats_from_time = ktime_get_real_seconds();
					spin_unlock(&tcon->stat_lock);
					if (server->ops->clear_stats)
						server->ops->clear_stats(tcon);
@@ -737,8 +738,9 @@ static int cifs_stats_proc_show(struct seq_file *m, void *v)
				seq_printf(m, "\n%d) %s", i, tcon->tree_name);
				if (tcon->need_reconnect)
					seq_puts(m, "\tDISCONNECTED ");
				seq_printf(m, "\nSMBs: %d",
					   atomic_read(&tcon->num_smbs_sent));
				seq_printf(m, "\nSMBs: %d since %ptTs UTC",
					   atomic_read(&tcon->num_smbs_sent),
					   &tcon->stats_from_time);
				if (server->ops->print_stats)
					server->ops->print_stats(m, tcon);
			}
Loading