diff options
author | Linus Torvalds <torvalds@ppc970.osdl.org> | 2005-04-16 18:20:36 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@ppc970.osdl.org> | 2005-04-16 18:20:36 -0400 |
commit | 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 (patch) | |
tree | 0bba044c4ce775e45a88a51686b5d9f90697ea9d /fs/cifs/TODO |
Linux-2.6.12-rc2v2.6.12-rc2
Initial git repository build. I'm not bothering with the full history,
even though we have it. We can create a separate "historical" git
archive of that later if we want to, and in the meantime it's about
3.2GB when imported into git - space that would just make the early
git days unnecessarily complicated, when we don't have a lot of good
infrastructure for it.
Let it rip!
Diffstat (limited to 'fs/cifs/TODO')
-rw-r--r-- | fs/cifs/TODO | 104 |
1 files changed, 104 insertions, 0 deletions
diff --git a/fs/cifs/TODO b/fs/cifs/TODO new file mode 100644 index 000000000000..f4e3e1f67ee4 --- /dev/null +++ b/fs/cifs/TODO | |||
@@ -0,0 +1,104 @@ | |||
1 | version 1.22 July 30, 2004 | ||
2 | |||
3 | A Partial List of Missing Features | ||
4 | ================================== | ||
5 | |||
6 | Contributions are welcome. There are plenty of opportunities | ||
7 | for visible, important contributions to this module. Here | ||
8 | is a partial list of the known problems and missing features: | ||
9 | |||
10 | a) Support for SecurityDescriptors for chmod/chgrp/chown so | ||
11 | these can be supported for Windows servers | ||
12 | |||
13 | b) Better pam/winbind integration (e.g. to handle uid mapping | ||
14 | better) | ||
15 | |||
16 | c) multi-user mounts - multiplexed sessionsetups over single vc | ||
17 | (ie tcp session) - prettying up needed, and more testing needed | ||
18 | |||
19 | d) Kerberos/SPNEGO session setup support - (started) | ||
20 | |||
21 | e) NTLMv2 authentication (mostly implemented) | ||
22 | |||
23 | f) MD5-HMAC signing SMB PDUs when SPNEGO style SessionSetup | ||
24 | used (Kerberos or NTLMSSP). Signing alreadyimplemented for NTLM | ||
25 | and raw NTLMSSP already. This is important when enabling | ||
26 | extended security and mounting to Windows 2003 Servers | ||
27 | |||
28 | f) Directory entry caching relies on a 1 second timer, rather than | ||
29 | using FindNotify or equivalent. - (started) | ||
30 | |||
31 | g) A few byte range testcases fail due to POSIX vs. Windows/CIFS | ||
32 | style byte range lock differences | ||
33 | |||
34 | h) quota support | ||
35 | |||
36 | j) finish writepages support (multi-page write behind for improved | ||
37 | performance) and syncpage | ||
38 | |||
39 | k) hook lower into the sockets api (as NFS/SunRPC does) to avoid the | ||
40 | extra copy in/out of the socket buffers in some cases. | ||
41 | |||
42 | l) finish support for IPv6. This is mostly complete but | ||
43 | needs a simple conversion of ipv6 to sin6_addr from the | ||
44 | address in string representation. | ||
45 | |||
46 | m) Better optimize open (and pathbased setfilesize) to reduce the | ||
47 | oplock breaks coming from windows srv. Piggyback identical file | ||
48 | opens on top of each other by incrementing reference count rather | ||
49 | than resending (helps reduce server resource utilization and avoid | ||
50 | spurious oplock breaks). | ||
51 | |||
52 | o) Improve performance of readpages by sending more than one read | ||
53 | at a time when 8 pages or more are requested. In conjuntion | ||
54 | add support for async_cifs_readpages. | ||
55 | |||
56 | p) Add support for storing symlink and fifo info to Windows servers | ||
57 | in the Extended Attribute format their SFU clients would recognize. | ||
58 | |||
59 | q) Finish fcntl D_NOTIFY support so kde and gnome file list windows | ||
60 | will autorefresh (started) | ||
61 | |||
62 | r) Add GUI tool to configure /proc/fs/cifs settings and for display of | ||
63 | the CIFS statistics (started) | ||
64 | |||
65 | q) implement support for security and trusted categories of xattrs | ||
66 | (requires minor protocol extension) to enable better support for SELINUX | ||
67 | |||
68 | r) Implement O_DIRECT flag on open (already supported on mount) | ||
69 | |||
70 | KNOWN BUGS (updated December 10, 2004) | ||
71 | ==================================== | ||
72 | 1) existing symbolic links (Windows reparse points) are recognized but | ||
73 | can not be created remotely. They are implemented for Samba and those that | ||
74 | support the CIFS Unix extensions but Samba has a bug currently handling | ||
75 | symlink text beginning with slash | ||
76 | 2) follow_link and readdir code does not follow dfs junctions | ||
77 | but recognizes them | ||
78 | 3) create of new files to FAT partitions on Windows servers can | ||
79 | succeed but still return access denied (appears to be Windows | ||
80 | server not cifs client problem) and has not been reproduced recently. | ||
81 | NTFS partitions do not have this problem. | ||
82 | 4) debug connectathon lock test case 10 which fails against | ||
83 | Samba (may be unmappable due to POSIX to Windows lock model | ||
84 | differences but worth investigating). Also debug Samba to | ||
85 | see why lock test case 7 takes longer to complete to Samba | ||
86 | than to Windows. | ||
87 | |||
88 | Misc testing to do | ||
89 | ================== | ||
90 | 1) check out max path names and max path name components against various server | ||
91 | types. Try nested symlinks (8 deep). Return max path name in stat -f information | ||
92 | |||
93 | 2) Modify file portion of ltp so it can run against a mounted network | ||
94 | share and run it against cifs vfs. | ||
95 | |||
96 | 3) Additional performance testing and optimization using iozone and similar - | ||
97 | there are some easy changes that can be done to parallelize sequential writes, | ||
98 | and when signing is disabled to request larger read sizes (larger than | ||
99 | negotiated size) and send larger write sizes to modern servers. | ||
100 | |||
101 | 4) More exhaustively test the recently added NT4 support against various | ||
102 | NT4 service pack levels, and fix cifs_setattr for setting file times and | ||
103 | size to fall back to level 1 when error invalid level returned. | ||
104 | |||