annotate fs/cifs/TODO @ 524:7f8b544237bf

netfront: Allow netfront in domain 0.

This is useful if your physical network device is in a utility domain.

Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
author Keir Fraser <keir.fraser@citrix.com>
date Tue Apr 15 15:18:58 2008 +0100 (2008-04-15)
parents 831230e53067
rev   line source
ian@0 1 Version 1.39 November 30, 2005
ian@0 2
ian@0 3 A Partial List of Missing Features
ian@0 4 ==================================
ian@0 5
ian@0 6 Contributions are welcome. There are plenty of opportunities
ian@0 7 for visible, important contributions to this module. Here
ian@0 8 is a partial list of the known problems and missing features:
ian@0 9
ian@0 10 a) Support for SecurityDescriptors(Windows/CIFS ACLs) for chmod/chgrp/chown
ian@0 11 so that these operations can be supported to Windows servers
ian@0 12
ian@0 13 b) Mapping POSIX ACLs (and eventually NFSv4 ACLs) to CIFS
ian@0 14 SecurityDescriptors
ian@0 15
ian@0 16 c) Better pam/winbind integration (e.g. to handle uid mapping
ian@0 17 better)
ian@0 18
ian@0 19 d) Kerberos/SPNEGO session setup support - (started)
ian@0 20
ian@0 21 e) NTLMv2 authentication (mostly implemented)
ian@0 22
ian@0 23 f) MD5-HMAC signing SMB PDUs when SPNEGO style SessionSetup
ian@0 24 used (Kerberos or NTLMSSP). Signing alreadyimplemented for NTLM
ian@0 25 and raw NTLMSSP already. This is important when enabling
ian@0 26 extended security and mounting to Windows 2003 Servers
ian@0 27
ian@0 28 f) Directory entry caching relies on a 1 second timer, rather than
ian@0 29 using FindNotify or equivalent. - (started)
ian@0 30
ian@0 31 g) A few byte range testcases fail due to POSIX vs. Windows/CIFS
ian@0 32 style byte range lock differences. Save byte range locks so
ian@0 33 reconnect can replay them.
ian@0 34
ian@0 35 h) Support unlock all (unlock 0,MAX_OFFSET)
ian@0 36 by unlocking all known byte range locks that we locked on the file.
ian@0 37
ian@0 38 i) quota support (needs minor kernel change since quota calls
ian@0 39 to make it to network filesystems or deviceless filesystems)
ian@0 40
ian@0 41 j) investigate sync behavior (including syncpage) and check
ian@0 42 for proper behavior of intr/nointr
ian@0 43
ian@0 44 k) hook lower into the sockets api (as NFS/SunRPC does) to avoid the
ian@0 45 extra copy in/out of the socket buffers in some cases.
ian@0 46
ian@0 47 l) finish support for IPv6. This is mostly complete but
ian@0 48 needs a simple conversion of ipv6 to sin6_addr from the
ian@0 49 address in string representation.
ian@0 50
ian@0 51 m) Better optimize open (and pathbased setfilesize) to reduce the
ian@0 52 oplock breaks coming from windows srv. Piggyback identical file
ian@0 53 opens on top of each other by incrementing reference count rather
ian@0 54 than resending (helps reduce server resource utilization and avoid
ian@0 55 spurious oplock breaks).
ian@0 56
ian@0 57 o) Improve performance of readpages by sending more than one read
ian@0 58 at a time when 8 pages or more are requested. In conjuntion
ian@0 59 add support for async_cifs_readpages.
ian@0 60
ian@0 61 p) Add support for storing symlink info to Windows servers
ian@0 62 in the Extended Attribute format their SFU clients would recognize.
ian@0 63
ian@0 64 q) Finish fcntl D_NOTIFY support so kde and gnome file list windows
ian@0 65 will autorefresh (partially complete by Asser). Needs minor kernel
ian@0 66 vfs change to support removing D_NOTIFY on a file.
ian@0 67
ian@0 68 r) Add GUI tool to configure /proc/fs/cifs settings and for display of
ian@0 69 the CIFS statistics (started)
ian@0 70
ian@0 71 s) implement support for security and trusted categories of xattrs
ian@0 72 (requires minor protocol extension) to enable better support for SELINUX
ian@0 73
ian@0 74 t) Implement O_DIRECT flag on open (already supported on mount)
ian@0 75
ian@0 76 u) Create UID mapping facility so server UIDs can be mapped on a per
ian@0 77 mount or a per server basis to client UIDs or nobody if no mapping
ian@0 78 exists. This is helpful when Unix extensions are negotiated to
ian@0 79 allow better permission checking when UIDs differ on the server
ian@0 80 and client. Add new protocol request to the CIFS protocol
ian@0 81 standard for asking the server for the corresponding name of a
ian@0 82 particular uid.
ian@0 83
ian@0 84 v) Add support for CIFS Unix and also the newer POSIX extensions to the
ian@0 85 server side for Samba 4.
ian@0 86
ian@0 87 w) Finish up the dos time conversion routines needed to return old server
ian@0 88 time to the client (default time, of now or time 0 is used now for these
ian@0 89 very old servers)
ian@0 90
ian@0 91 x) Add support for OS/2 (LANMAN 1.2 and LANMAN2.1 based SMB servers)
ian@0 92
ian@0 93 y) Finish testing of Windows 9x/Windows ME server support (started).
ian@0 94
ian@0 95 KNOWN BUGS (updated April 29, 2005)
ian@0 96 ====================================
ian@0 97 See http://bugzilla.samba.org - search on product "CifsVFS" for
ian@0 98 current bug list.
ian@0 99
ian@0 100 1) existing symbolic links (Windows reparse points) are recognized but
ian@0 101 can not be created remotely. They are implemented for Samba and those that
ian@0 102 support the CIFS Unix extensions, although earlier versions of Samba
ian@0 103 overly restrict the pathnames.
ian@0 104 2) follow_link and readdir code does not follow dfs junctions
ian@0 105 but recognizes them
ian@0 106 3) create of new files to FAT partitions on Windows servers can
ian@0 107 succeed but still return access denied (appears to be Windows
ian@0 108 server not cifs client problem) and has not been reproduced recently.
ian@0 109 NTFS partitions do not have this problem.
ian@0 110 4) debug connectathon lock test case 10 which fails against
ian@0 111 Samba (may be unmappable due to POSIX to Windows lock model
ian@0 112 differences but worth investigating). Also debug Samba to
ian@0 113 see why lock test case 7 takes longer to complete to Samba
ian@0 114 than to Windows.
ian@0 115
ian@0 116 Misc testing to do
ian@0 117 ==================
ian@0 118 1) check out max path names and max path name components against various server
ian@0 119 types. Try nested symlinks (8 deep). Return max path name in stat -f information
ian@0 120
ian@0 121 2) Modify file portion of ltp so it can run against a mounted network
ian@0 122 share and run it against cifs vfs.
ian@0 123
ian@0 124 3) Additional performance testing and optimization using iozone and similar -
ian@0 125 there are some easy changes that can be done to parallelize sequential writes,
ian@0 126 and when signing is disabled to request larger read sizes (larger than
ian@0 127 negotiated size) and send larger write sizes to modern servers.
ian@0 128
ian@0 129 4) More exhaustively test against less common servers. More testing
ian@0 130 against Windows 9x, Windows ME servers.