Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 12087
b: refs/heads/master
c: 0e016b9
h: refs/heads/master
i:
  12085: ea51665
  12083: 0f1fa51
  12079: 03ddefd
v: v3
  • Loading branch information
Linus Torvalds committed Nov 2, 2005
1 parent 5f5bf00 commit 3f10382
Show file tree
Hide file tree
Showing 29 changed files with 2,444 additions and 724 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: de4ae58fc9f46482f96306301011dfc8b404491f
refs/heads/master: 0e016b9fa134d79341cca5e336ccbcea066d5f81
2 changes: 1 addition & 1 deletion trunk/arch/i386/pci/fixup.c
Original file line number Diff line number Diff line change
Expand Up @@ -398,7 +398,7 @@ DECLARE_PCI_FIXUP_HEADER(PCI_ANY_ID, PCI_ANY_ID, pci_fixup_video);
*/
static u16 toshiba_line_size;

static struct dmi_system_id __devinit toshiba_ohci1394_dmi_table[] = {
static struct dmi_system_id __devinitdata toshiba_ohci1394_dmi_table[] = {
{
.ident = "Toshiba PS5 based laptop",
.matches = {
Expand Down
4 changes: 4 additions & 0 deletions trunk/fs/cifs/AUTHORS
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,10 @@ Domen Puncer
Jesper Juhl (in particular for lots of whitespace/formatting cleanup)
Vince Negri and Dave Stahl (for finding an important caching bug)
Adrian Bunk (kcalloc cleanups)
Miklos Szeredi
Kazeon team for various fixes especially for 2.4 version.
Asser Ferno (Change Notify support)
Shaggy (Dave Kleikamp) for inumerable small fs suggestions and some good cleanup

Test case and Bug Report contributors
-------------------------------------
Expand Down
60 changes: 52 additions & 8 deletions trunk/fs/cifs/CHANGES
Original file line number Diff line number Diff line change
@@ -1,8 +1,52 @@
Version 1.39
------------
Defer close of a file handle slightly if pending writes depend on that file handle
(this reduces the EBADF bad file handle errors that can be logged under heavy
stress on writes).

Version 1.38
------------
Fix tcp socket retransmission timeouts (e.g. on ENOSPACE from the socket)
to be smaller at first (but increasing) so large write performance performance
over GigE is better. Do not hang thread on illegal byte range lock response
from Windows (Windows can send an RFC1001 size which does not match smb size) by
allowing an SMBs TCP length to be up to a few bytes longer than it should be.
wsize and rsize can now be larger than negotiated buffer size if server
supports large readx/writex, even when directio mount flag not specified.
Write size will in many cases now be 16K instead of 4K which greatly helps
file copy performance on lightly loaded networks. Fix oops in dnotify
when experimental config flag enabled. Make cifsFYI more granular.

Version 1.37
------------
Fix readdir caching when unlink removes file in current search buffer,
and this is followed by a rewind search to just before the deleted entry.
Do not attempt to set ctime unless atime and/or mtime change requested
(most servers throw it away anyway). Fix length check of received smbs
to be more accurate. Fix big endian problem with mapchars mount option,
and with a field returned by statfs.

Version 1.36
------------
Add support for mounting to older pre-CIFS servers such as Windows9x and ME.
For these older servers, add option for passing netbios name of server in
on mount (servernetbiosname). Add suspend support for power management, to
avoid cifsd thread preventing software suspend from working.
Add mount option for disabling the default behavior of sending byte range lock
requests to the server (necessary for certain applications which break with
mandatory lock behavior such as Evolution), and also mount option for
requesting case insensitive matching for path based requests (requesting
case sensitive is the default).

Version 1.35
------------
Add writepage performance improvements. Fix path name conversions
for long filenames on mounts which were done with "mapchars" mount option
specified.
specified. Ensure multiplex ids do not collide. Fix case in which
rmmod can oops if done soon after last unmount. Fix truncated
search (readdir) output when resume filename was a long filename.
Fix filename conversion when mapchars mount option was specified and
filename was a long filename.

Version 1.34
------------
Expand All @@ -11,7 +55,7 @@ Do not oops if root user kills cifs oplock kernel thread or
kills the cifsd thread (NB: killing the cifs kernel threads is not
recommended, unmount and rmmod cifs will kill them when they are
no longer needed). Fix readdir to ASCII servers (ie older servers
which do not support Unicode) and also require asterik.
which do not support Unicode) and also require asterisk.
Fix out of memory case in which data could be written one page
off in the page cache.

Expand Down Expand Up @@ -101,7 +145,7 @@ improperly zeroed buffer in CIFS Unix extensions set times call.

Version 1.25
------------
Fix internationlization problem in cifs readdir with filenames that map to
Fix internationalization problem in cifs readdir with filenames that map to
longer UTF8 strings than the string on the wire was in Unicode. Add workaround
for readdir to netapp servers. Fix search rewind (seek into readdir to return
non-consecutive entries). Do not do readdir when server negotiates
Expand Down Expand Up @@ -276,7 +320,7 @@ Fix caching problem when files opened by multiple clients in which
page cache could contain stale data, and write through did
not occur often enough while file was still open when read ahead
(read oplock) not allowed. Treat "sep=" when first mount option
as an overrride of comma as the default separator between mount
as an override of comma as the default separator between mount
options.

Version 1.01
Expand All @@ -286,7 +330,7 @@ Allow passwords longer than 16 bytes. Allow null password string.
Version 1.00
------------
Gracefully clean up failed mounts when attempting to mount to servers such as
Windows 98 that terminate tcp sessions during prototocol negotiation. Handle
Windows 98 that terminate tcp sessions during protocol negotiation. Handle
embedded commas in mount parsing of passwords.

Version 0.99
Expand All @@ -295,7 +339,7 @@ Invalidate local inode cached pages on oplock break and when last file
instance is closed so that the client does not continue using stale local
copy rather than later modified server copy of file. Do not reconnect
when server drops the tcp session prematurely before negotiate
protocol response. Fix oops in roepen_file when dentry freed. Allow
protocol response. Fix oops in reopen_file when dentry freed. Allow
the support for CIFS Unix Extensions to be disabled via proc interface.

Version 0.98
Expand Down Expand Up @@ -637,7 +681,7 @@ versions of 2.4 kernel (now builds and works again on kernels at least as early
Version 0.41
------------
Various minor fixes for Connectathon Posix "basic" file i/o test suite. Directory caching fixed so hardlinked
files now return the correct rumber of links on fstat as they are repeatedly linked and unlinked.
files now return the correct number of links on fstat as they are repeatedly linked and unlinked.

Version 0.40
------------
Expand Down Expand Up @@ -704,7 +748,7 @@ session)
and cleaned them up and made them more consistent with other cifs functions.

7) Server support for Unix extensions is now fully detected and FindFirst is implemented both ways
(with or without Unix exentions) but FindNext and QueryPathInfo with the Unix extensions are not completed,
(with or without Unix extensions) but FindNext and QueryPathInfo with the Unix extensions are not completed,
nor is the symlink support using the Unix extensions

8) Started adding the readlink and follow_link code
Expand Down
24 changes: 20 additions & 4 deletions trunk/fs/cifs/README
Original file line number Diff line number Diff line change
Expand Up @@ -294,8 +294,10 @@ A partial list of the supported mount options follows:
during the local client kernel build will be used.
If server does not support Unicode, this parameter is
unused.
rsize default read size
wsize default write size
rsize default read size (usually 16K)
wsize default write size (usually 16K, 32K is often better over GigE)
maximum wsize currently allowed by CIFS is 57344 (14 4096 byte
pages)
rw mount the network share read-write (note that the
server may still consider the share read-only)
ro mount network share read-only
Expand Down Expand Up @@ -407,6 +409,13 @@ A partial list of the supported mount options follows:
This has no effect if the server does not support
Unicode on the wire.
nomapchars Do not translate any of these seven characters (default).
nocase Request case insensitive path name matching (case
sensitive is the default if the server suports it).
nobrl Do not send byte range lock requests to the server.
This is necessary for certain applications that break
with cifs style mandatory byte range locks (and most
cifs servers do not yet support requesting advisory
byte range locks).
remount remount the share (often used to change from ro to rw mounts
or vice versa)

Expand Down Expand Up @@ -473,9 +482,16 @@ These experimental features and tracing can be enabled by changing flags in
kernel, e.g. insmod cifs). To enable a feature set it to 1 e.g. to enable
tracing to the kernel message log type:

echo 1 > /proc/fs/cifs/cifsFYI
echo 7 > /proc/fs/cifs/cifsFYI

and for more extensive tracing including the start of smb requests and responses
cifsFYI functions as a bit mask. Setting it to 1 enables additional kernel
logging of various informational messages. 2 enables logging of non-zero
SMB return codes while 4 enables logging of requests that take longer
than one second to complete (except for byte range lock requests).
Setting it to 4 requires defining CONFIG_CIFS_STATS2 manually in the
source code (typically by setting it in the beginning of cifsglob.h),
and setting it to seven enables all three. Finally, tracing
the start of smb requests and responses can be enabled via:

echo 1 > /proc/fs/cifs/traceSMB

Expand Down
50 changes: 32 additions & 18 deletions trunk/fs/cifs/TODO
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
version 1.34 April 29, 2005
version 1.37 October 9, 2005

A Partial List of Missing Features
==================================
Expand All @@ -7,14 +7,14 @@ 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) Support for SecurityDescriptors for chmod/chgrp/chown so
these can be supported for Windows servers
a) Support for SecurityDescriptors(Windows/CIFS ACLs) for chmod/chgrp/chown
so that these operations can be supported to Windows servers

b) Better pam/winbind integration (e.g. to handle uid mapping
better)
b) Mapping POSIX ACLs (and eventually NFSv4 ACLs) to CIFS
SecurityDescriptors

c) multi-user mounts - multiplexed sessionsetups over single vc
(ie tcp session) - more testing needed
c) Better pam/winbind integration (e.g. to handle uid mapping
better)

d) Kerberos/SPNEGO session setup support - (started)

Expand All @@ -29,12 +29,17 @@ f) Directory entry caching relies on a 1 second timer, rather than
using FindNotify or equivalent. - (started)

g) A few byte range testcases fail due to POSIX vs. Windows/CIFS
style byte range lock differences
style byte range lock differences. Save byte range locks so
reconnect can replay them.

h) quota support
h) Support unlock all (unlock 0,MAX_OFFSET)
by unlocking all known byte range locks that we locked on the file.

j) finish writepages support (multi-page write behind for improved
performance) and syncpage
i) quota support (needs minor kernel change since quota calls
to make it to network filesystems or deviceless filesystems)

j) investigate sync behavior (including syncpage) and check
for proper behavior of intr/nointr

k) hook lower into the sockets api (as NFS/SunRPC does) to avoid the
extra copy in/out of the socket buffers in some cases.
Expand All @@ -57,27 +62,36 @@ p) Add support for storing symlink and fifo info to Windows servers
in the Extended Attribute format their SFU clients would recognize.

q) Finish fcntl D_NOTIFY support so kde and gnome file list windows
will autorefresh (started)
will autorefresh (partially complete by Asser). Needs minor kernel
vfs change to support removing D_NOTIFY on a file.

r) Add GUI tool to configure /proc/fs/cifs settings and for display of
the CIFS statistics (started)

q) implement support for security and trusted categories of xattrs
s) implement support for security and trusted categories of xattrs
(requires minor protocol extension) to enable better support for SELINUX

r) Implement O_DIRECT flag on open (already supported on mount)

s) Allow remapping of last remaining character (\) to +0xF000 which
(this character is valid for POSIX but not for Windows)
t) Implement O_DIRECT flag on open (already supported on mount)

t) Create UID mapping facility so server UIDs can be mapped on a per
u) 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. This is helpful when Unix extensions are negotiated to
allow better permission checking when UIDs differ on the server
and client. Add new protocol request to the CIFS protocol
standard for asking the server for the corresponding name of a
particular uid.

v) Add support for CIFS Unix and also the newer POSIX extensions to the
server side for Samba 4.

w) Finish up the dos time conversion routines needed to return old server
time to the client (default time, of now or time 0 is used now for these
very old servers)

x) Add support for OS/2 (LANMAN 1.2 and LANMAN2.1 based SMB servers)

y) Finish testing of Windows 9x/Windows ME server support (started).

KNOWN BUGS (updated April 29, 2005)
====================================
See http://bugzilla.samba.org - search on product "CifsVFS" for
Expand Down
3 changes: 2 additions & 1 deletion trunk/fs/cifs/asn1.c
Original file line number Diff line number Diff line change
Expand Up @@ -191,7 +191,8 @@ asn1_header_decode(struct asn1_ctx *ctx,
unsigned char **eoc,
unsigned int *cls, unsigned int *con, unsigned int *tag)
{
unsigned int def, len;
unsigned int def = 0;
unsigned int len = 0;

if (!asn1_id_decode(ctx, cls, con, tag))
return 0;
Expand Down
Loading

0 comments on commit 3f10382

Please sign in to comment.