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

update CIFS TODO list

Signed-off-by: Steve French <smfrench@gmail.com>

+36 -61
+36 -61
Documentation/filesystems/cifs/TODO
··· 1 - Version 1.53 May 20, 2008 1 + Version 2.03 August 1, 2014 2 2 3 3 A Partial List of Missing Features 4 4 ================================== ··· 7 7 for visible, important contributions to this module. Here 8 8 is a partial list of the known problems and missing features: 9 9 10 - a) Support for SecurityDescriptors(Windows/CIFS ACLs) for chmod/chgrp/chown 11 - so that these operations can be supported to Windows servers 10 + a) SMB3 (and SMB3.02) missing optional features: 11 + - RDMA 12 + - multichannel (started) 13 + - directory leases (improved metadata caching) 14 + - T10 copy offload (copy chunk is only mechanism supported) 15 + - encrypted shares 12 16 13 - b) Mapping POSIX ACLs (and eventually NFSv4 ACLs) to CIFS 14 - SecurityDescriptors 17 + b) improved sparse file support 15 18 16 - c) Better pam/winbind integration (e.g. to handle uid mapping 17 - better) 18 - 19 - d) Cleanup now unneeded SessSetup code in 20 - fs/cifs/connect.c and add back in NTLMSSP code if any servers 21 - need it 22 - 23 - e) fix NTLMv2 signing when two mounts with different users to same 24 - server. 25 - 26 - f) Directory entry caching relies on a 1 second timer, rather than 19 + c) Directory entry caching relies on a 1 second timer, rather than 27 20 using FindNotify or equivalent. - (started) 28 21 29 - g) quota support (needs minor kernel change since quota calls 22 + d) quota support (needs minor kernel change since quota calls 30 23 to make it to network filesystems or deviceless filesystems) 31 24 32 - h) investigate sync behavior (including syncpage) and check 33 - for proper behavior of intr/nointr 34 - 35 - i) improve support for very old servers (OS/2 and Win9x for example) 25 + e) improve support for very old servers (OS/2 and Win9x for example) 36 26 Including support for changing the time remotely (utimes command). 37 27 38 - j) hook lower into the sockets api (as NFS/SunRPC does) to avoid the 28 + f) hook lower into the sockets api (as NFS/SunRPC does) to avoid the 39 29 extra copy in/out of the socket buffers in some cases. 40 30 41 - k) Better optimize open (and pathbased setfilesize) to reduce the 31 + g) Better optimize open (and pathbased setfilesize) to reduce the 42 32 oplock breaks coming from windows srv. Piggyback identical file 43 33 opens on top of each other by incrementing reference count rather 44 34 than resending (helps reduce server resource utilization and avoid 45 35 spurious oplock breaks). 46 36 47 - l) Improve performance of readpages by sending more than one read 48 - at a time when 8 pages or more are requested. In conjuntion 49 - add support for async_cifs_readpages. 50 - 51 - m) Add support for storing symlink info to Windows servers 37 + h) Add support for storing symlink info to Windows servers 52 38 in the Extended Attribute format their SFU clients would recognize. 53 39 54 - n) Finish fcntl D_NOTIFY support so kde and gnome file list windows 40 + i) Finish inotify support so kde and gnome file list windows 55 41 will autorefresh (partially complete by Asser). Needs minor kernel 56 42 vfs change to support removing D_NOTIFY on a file. 57 43 58 - o) Add GUI tool to configure /proc/fs/cifs settings and for display of 44 + j) Add GUI tool to configure /proc/fs/cifs settings and for display of 59 45 the CIFS statistics (started) 60 46 61 - p) implement support for security and trusted categories of xattrs 47 + k) implement support for security and trusted categories of xattrs 62 48 (requires minor protocol extension) to enable better support for SELINUX 63 49 64 - q) Implement O_DIRECT flag on open (already supported on mount) 50 + l) Implement O_DIRECT flag on open (already supported on mount) 65 51 66 - r) Create UID mapping facility so server UIDs can be mapped on a per 52 + m) Create UID mapping facility so server UIDs can be mapped on a per 67 53 mount or a per server basis to client UIDs or nobody if no mapping 68 54 exists. This is helpful when Unix extensions are negotiated to 69 55 allow better permission checking when UIDs differ on the server ··· 57 71 standard for asking the server for the corresponding name of a 58 72 particular uid. 59 73 60 - s) Add support for CIFS Unix and also the newer POSIX extensions to the 61 - server side for Samba 4. 74 + n) DOS attrs - returned as pseudo-xattr in Samba format (check VFAT and NTFS for this too) 62 75 63 - t) In support for OS/2 (LANMAN 1.2 and LANMAN2.1 based SMB servers) 64 - need to add ability to set time to server (utimes command) 76 + o) mount check for unmatched uids 65 77 66 - u) DOS attrs - returned as pseudo-xattr in Samba format (check VFAT and NTFS for this too) 78 + p) Add support for new vfs entry point for fallocate 67 79 68 - v) mount check for unmatched uids 80 + q) Add tools to take advantage of cifs/smb3 specific ioctls and features 81 + such as "CopyChunk" (fast server side file copy) 69 82 70 - w) Add support for new vfs entry point for fallocate 83 + r) encrypted file support 71 84 72 - x) Fix Samba 3 server to handle Linux kernel aio so dbench with lots of 73 - processes can proceed better in parallel (on the server) 85 + s) improved stats gathering, tools (perhaps integration with nfsometer?) 74 86 75 - y) Fix Samba 3 to handle reads/writes over 127K (and remove the cifs mount 76 - restriction of wsize max being 127K) 87 + t) allow setting more NTFS/SMB3 file attributes remotely (currently limited to compressed 88 + file attribute via chflags) 77 89 78 - KNOWN BUGS (updated April 24, 2007) 90 + u) mount helper GUI (to simplify the various configuration options on mount) 91 + 92 + 93 + KNOWN BUGS 79 94 ==================================== 80 95 See http://bugzilla.samba.org - search on product "CifsVFS" for 81 - current bug list. 96 + current bug list. Also check http://bugzilla.kernel.org (Product = File System, Component = CIFS) 82 97 83 98 1) existing symbolic links (Windows reparse points) are recognized but 84 99 can not be created remotely. They are implemented for Samba and those that ··· 87 100 overly restrict the pathnames. 88 101 2) follow_link and readdir code does not follow dfs junctions 89 102 but recognizes them 90 - 3) create of new files to FAT partitions on Windows servers can 91 - succeed but still return access denied (appears to be Windows 92 - server not cifs client problem) and has not been reproduced recently. 93 - NTFS partitions do not have this problem. 94 - 4) Unix/POSIX capabilities are reset after reconnection, and affect 95 - a few fields in the tree connection but we do do not know which 96 - superblocks to apply these changes to. We should probably walk 97 - the list of superblocks to set these. Also need to check the 98 - flags on the second mount to the same share, and see if we 99 - can do the same trick that NFS does to remount duplicate shares. 100 103 101 104 Misc testing to do 102 105 ================== 103 106 1) check out max path names and max path name components against various server 104 107 types. Try nested symlinks (8 deep). Return max path name in stat -f information 105 108 106 - 2) Modify file portion of ltp so it can run against a mounted network 107 - share and run it against cifs vfs in automated fashion. 109 + 2) Improve xfstest's cifs enablement and adapt xfstests where needed to test 110 + cifs better 108 111 109 112 3) Additional performance testing and optimization using iozone and similar - 110 113 there are some easy changes that can be done to parallelize sequential writes, 111 114 and when signing is disabled to request larger read sizes (larger than 112 115 negotiated size) and send larger write sizes to modern servers. 113 116 114 - 4) More exhaustively test against less common servers. More testing 115 - against Windows 9x, Windows ME servers. 116 - 117 + 4) More exhaustively test against less common servers