105 lines
		
	
	
		
			4.3 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			105 lines
		
	
	
		
			4.3 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
Version 2.11 September 13, 2017
 | 
						|
 | 
						|
A Partial List of Missing Features
 | 
						|
==================================
 | 
						|
 | 
						|
Contributions are welcome.  There are plenty of opportunities
 | 
						|
for visible, important contributions to this module.  Here
 | 
						|
is a partial list of the known problems and missing features:
 | 
						|
 | 
						|
a) SMB3 (and SMB3.02) missing optional features:
 | 
						|
   - multichannel (started), integration with RDMA
 | 
						|
   - directory leases (improved metadata caching), started (root dir only)
 | 
						|
   - T10 copy offload ie "ODX" (copy chunk, and "Duplicate Extents" ioctl
 | 
						|
     currently the only two server side copy mechanisms supported)
 | 
						|
 | 
						|
b) improved sparse file support
 | 
						|
 | 
						|
c) Directory entry caching relies on a 1 second timer, rather than
 | 
						|
using Directory Leases, currently only the root file handle is cached longer
 | 
						|
 | 
						|
d) quota support (needs minor kernel change since quota calls
 | 
						|
to make it to network filesystems or deviceless filesystems)
 | 
						|
 | 
						|
e) Compounding (in progress) to reduce number of roundtrips, and also
 | 
						|
better optimize open to reduce redundant opens (using reference counts more).
 | 
						|
 | 
						|
f) Finish inotify support so kde and gnome file list windows
 | 
						|
will autorefresh (partially complete by Asser). Needs minor kernel
 | 
						|
vfs change to support removing D_NOTIFY on a file.   
 | 
						|
 | 
						|
g) Add GUI tool to configure /proc/fs/cifs settings and for display of
 | 
						|
the CIFS statistics (started)
 | 
						|
 | 
						|
h) implement support for security and trusted categories of xattrs
 | 
						|
(requires minor protocol extension) to enable better support for SELINUX
 | 
						|
 | 
						|
i) Add support for tree connect contexts (see MS-SMB2) a new SMB3.1.1 protocol
 | 
						|
   feature (may be especially useful for virtualization).
 | 
						|
 | 
						|
j) Create UID mapping facility so server UIDs can be mapped on a per
 | 
						|
mount or a per server basis to client UIDs or nobody if no mapping
 | 
						|
exists. Also better integration with winbind for resolving SID owners
 | 
						|
 | 
						|
k) Add tools to take advantage of more smb3 specific ioctls and features
 | 
						|
(passthrough ioctl/fsctl for sending various SMB3 fsctls to the server
 | 
						|
is in progress)
 | 
						|
 | 
						|
l) encrypted file support
 | 
						|
 | 
						|
m) improved stats gathering, tools (perhaps integration with nfsometer?)
 | 
						|
 | 
						|
n) allow setting more NTFS/SMB3 file attributes remotely (currently limited to compressed
 | 
						|
file attribute via chflags) and improve user space tools for managing and
 | 
						|
viewing them.
 | 
						|
 | 
						|
o) mount helper GUI (to simplify the various configuration options on mount)
 | 
						|
 | 
						|
p) Add support for witness protocol (perhaps ioctl to cifs.ko from user space
 | 
						|
   tool listening on witness protocol RPC) to allow for notification of share
 | 
						|
   move, server failover, and server adapter changes.  And also improve other
 | 
						|
   failover scenarios, e.g. when client knows multiple DFS entries point to
 | 
						|
   different servers, and the server we are connected to has gone down.
 | 
						|
 | 
						|
q) Allow mount.cifs to be more verbose in reporting errors with dialect
 | 
						|
or unsupported feature errors.
 | 
						|
 | 
						|
r) updating cifs documentation, and user guide.
 | 
						|
 | 
						|
s) Addressing bugs found by running a broader set of xfstests in standard
 | 
						|
file system xfstest suite.
 | 
						|
 | 
						|
t) split cifs and smb3 support into separate modules so legacy (and less
 | 
						|
secure) CIFS dialect can be disabled in environments that don't need it
 | 
						|
and simplify the code.
 | 
						|
 | 
						|
v) POSIX Extensions for SMB3.1.1 (started, create and mkdir support added
 | 
						|
so far).
 | 
						|
 | 
						|
KNOWN BUGS
 | 
						|
====================================
 | 
						|
See http://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
 | 
						|
 | 
						|
Misc testing to do
 | 
						|
==================
 | 
						|
1) check out max path names and max path name components against various server
 | 
						|
types. Try nested symlinks (8 deep). Return max path name in stat -f information
 | 
						|
 | 
						|
2) Improve xfstest's cifs/smb3 enablement and adapt xfstests where needed to test
 | 
						|
cifs/smb3 better
 | 
						|
 | 
						|
3) Additional performance testing and optimization using iozone and similar - 
 | 
						|
there are some easy changes that can be done to parallelize sequential writes,
 | 
						|
and when signing is disabled to request larger read sizes (larger than 
 | 
						|
negotiated size) and send larger write sizes to modern servers.
 | 
						|
 | 
						|
4) More exhaustively test against less common servers
 |