1
Commit Graph

562 Commits

Author SHA1 Message Date
Steve French
3979877e56 [CIFS] Support for setting up SMB sessions to legacy lanman servers 2006-05-31 22:40:51 +00:00
Steve French
26a21b980b [CIFS] Cleanup extra whitespace in dmesg logging. Update cifs change log 2006-05-31 18:05:34 +00:00
Steve French
55aa2e097d [[CIFS] Pass truncate open flag through on file open in case setattr fails
on set size to zero.

Signed-off-by: Sebastian Voitzsch <sebastoam/vpotzscj@web.de>
Signed-off-by: Steve French <sfrench@us.ibm.com>
2006-05-30 18:09:31 +00:00
Steve French
08775834c4 [CIFS] Fix typos in previous fix
Signed-off-by: Steve French <sfrench@us.ibm.com>
2006-05-30 18:08:26 +00:00
Steve French
cec6815a12 [CIFS] endian fix for new POSIX byte range lock support
Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
Signed-off-by: Steve French <sfrench@us.ibm.com>
2006-05-30 18:07:17 +00:00
Steve French
a424f8bfcb [CIFS] fix memory leak in cifs session info struct on reconnect
Signed-off-by: Steve French <sfrench@us.ibm.com>
2006-05-30 18:06:04 +00:00
Steve French
c01f36a896 [CIFS] ACPI suspend oops
Wasn't able to reproduce a hard hang, but was able to get an oops if
suspended the machine during a copy to the cifs mount.  This led to some
things hanging, including a "sync".  Also got I/O errors when trying to
access the mount afterwards (even when didn't see the oops), and had
to unmount and remount in order to access the filesystem.

This patch fixed the oops.

Signed-off-by: Dave Kleikamp <shaggy@austin.ibm.com>
Signed-off-by: Steve French <sfrench@us.ibm.com>
2006-05-30 18:05:10 +00:00
Steve French
a878fb2218 [CIFS] Do not limit the length of share names (was 100 for whole UNC name)
during mount. Especially important for some non-Western languages.

Signed-off-by: Steve French <sfrench@us.ibm.com>
2006-05-30 18:04:19 +00:00
Steve French
fc94cdb944 [CIFS] Fix new POSIX Locking for setting lock_type correctly on unlock
Signed-off-by: Steve French <sfrench@us.ibm.com>
2006-05-30 18:03:32 +00:00
Steve French
301dc3e6f6 [CIFS] Fix compile error when CONFIG_CIFS_EXPERIMENTAL is undefined
Signed-off-by: Dave Kleikamp <shaggy@austin.ibm.com>
Signed-off-by: Steve French <sfrench@us.ibm.com>
2006-04-24 16:24:54 +00:00
Steve French
b66ac3ea21 [CIFS] Fix typo in previous
Signed-off-by: Steve French <sfrench@us.ibm.com>
2006-04-23 01:54:50 +00:00
Steve French
60808233f3 [CIFS] Readdir fixes to allow search to start at arbitrary position
in directory

Also includes first part of fix to compensate for servers which forget
to return . and .. as well as updates to changelog and cifs readme.

Signed-off-by: Steve French <sfrench@us.ibm.com>
2006-04-22 15:53:05 +00:00
Steve French
45af7a0f2e [CIFS] Use the kthread_ API instead of opencoding lots of hairy code for kernel
thread creation and teardown.

It does not move the cifsd thread handling to kthread due to problems
found in testing with wakeup of threads blocked in the socket peek api,
but the other cifs kernel threads now use kthread.
Also cleanup cifs_init to properly unwind when thread creation fails.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Steve French <sfrench@us.ibm.com>
2006-04-21 22:52:25 +00:00
Steve French
296034f7de [CIFS] Don't allow a backslash in a path component
Unless Posix paths have been negotiated, the backslash, "\", is not a valid
character in a path component.

Signed-off-by: Dave Kleikamp <shaggy@austin.ibm.com>
Signed-off-by: Steve French  <sfrench@us.ibm.com>
2006-04-21 18:18:37 +00:00
Steve French
0bd4fa977f [CIFS] [CIFS] Do not take rename sem on most path based calls (during
building of full path) to avoid hang rename/readdir hang

Reported by Alan Tyson

Signed-off-by: Steve French <sfrench@us.ibm.com>
2006-04-21 18:17:42 +00:00
Steve French
06bcfedd05 [CIFS] Fix typo in earlier cifs_unlink change and protect one
extra path.

Since cifs_unlink can also be called from rename path and there
was one report of oops am making the extra check for null inode.

Signed-off-by: Steve French <sfrench@us.ibm.com>
2006-03-31 22:43:50 +00:00
Steve French
e9917a000f [CIFS] Incorrect signature sent on SMB Read
Fixes Samba bug 3621 and kernel.org bug 6147

For servers which require SMB/CIFS packet signing, we were sending the
wrong signature (all zeros) on SMB Read request.  The new cifs routine
to do signatures across an iovec was not complete - and SMB Read, unlike
the new SMBWrite2, did not fall back to the older routine (ie use
SendReceive vs. the more efficient SendReceive2 ie used the older
cifs_sign_smb vs. the disabled  cifs_sign_smb2) for calculating signatures.

This finishes up cifs_sign_smb2/cifs_calc_signature2 so that the callers
of SendReceive2 can get SMB/CIFS packet signatures.

Now that cifs_sign_smb2 is supported, we could start using it in
the write path but this smaller fix does not include the change
to use SMBWrite2 when signatures are required (which when enabled
will make more Writes more efficient and alloc less memory).
Currently Write2 is only used when signatures are not
required at the moment but after more testing we will enable
that as well).

Thanks to James Slepicka and Sam Flory for initial investigation.

Signed-off-by: Steve French <sfrench@us.ibm.com>
2006-03-31 21:22:00 +00:00
Steve French
6910ab30a2 [CIFS] Fix unlink oops when indirectly called in rename error path
under heavy stress.

Signed-off-by: Steve French <sfrench@us.ibm.com>
2006-03-31 03:37:08 +00:00
Steve French
d62e54abca Merge with /pub/scm/linux/kernel/git/torvalds/linux-2.6.git
Signed-off-by: Steve French <sfrench@us.ibm.com>
2006-03-31 03:35:56 +00:00
Arjan van de Ven
4b6f5d20b0 [PATCH] Make most file operations structs in fs/ const
This is a conversion to make the various file_operations structs in fs/
const.  Basically a regexp job, with a few manual fixups

The goal is both to increase correctness (harder to accidentally write to
shared datastructures) and reducing the false sharing of cachelines with
things that get dirty in .data (while .rodata is nicely read only and thus
cache clean)

Signed-off-by: Arjan van de Ven <arjan@infradead.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-03-28 09:16:06 -08:00
Andrew Morton
5515eff811 [PATCH] 2tb-files-add-blkcnt_t-fixes
Cc: Takashi Sato <sho@tnes.nec.co.jp>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-03-26 08:57:00 -08:00
Matthew Dobson
93d2341c75 [PATCH] mempool: use mempool_create_slab_pool()
Modify well over a dozen mempool users to call mempool_create_slab_pool()
rather than calling mempool_create() with extra arguments, saving about 30
lines of code and increasing readability.

Signed-off-by: Matthew Dobson <colpatch@us.ibm.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-03-26 08:57:00 -08:00
NeilBrown
3978d7179d [PATCH] Make address_space_operations->sync_page return void
The only user ignores the return value, and the only instanace
(block_sync_page) always returns 0...

Signed-off-by: Neil Brown <neilb@suse.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-03-26 08:56:55 -08:00
Alexey Dobriyan
53b3531bbb [PATCH] s/;;/;/g
Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-03-24 07:33:24 -08:00
Paul Jackson
fffb60f93c [PATCH] cpuset memory spread: slab cache format
Rewrap the overly long source code lines resulting from the previous
patch's addition of the slab cache flag SLAB_MEM_SPREAD.  This patch
contains only formatting changes, and no function change.

Signed-off-by: Paul Jackson <pj@sgi.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-03-24 07:33:23 -08:00
Paul Jackson
4b6a9316fa [PATCH] cpuset memory spread: slab cache filesystems
Mark file system inode and similar slab caches subject to SLAB_MEM_SPREAD
memory spreading.

If a slab cache is marked SLAB_MEM_SPREAD, then anytime that a task that's
in a cpuset with the 'memory_spread_slab' option enabled goes to allocate
from such a slab cache, the allocations are spread evenly over all the
memory nodes (task->mems_allowed) allowed to that task, instead of favoring
allocation on the node local to the current cpu.

The following inode and similar caches are marked SLAB_MEM_SPREAD:

    file                               cache
    ====                               =====
    fs/adfs/super.c                    adfs_inode_cache
    fs/affs/super.c                    affs_inode_cache
    fs/befs/linuxvfs.c                 befs_inode_cache
    fs/bfs/inode.c                     bfs_inode_cache
    fs/block_dev.c                     bdev_cache
    fs/cifs/cifsfs.c                   cifs_inode_cache
    fs/coda/inode.c                    coda_inode_cache
    fs/dquot.c                         dquot
    fs/efs/super.c                     efs_inode_cache
    fs/ext2/super.c                    ext2_inode_cache
    fs/ext2/xattr.c (fs/mbcache.c)     ext2_xattr
    fs/ext3/super.c                    ext3_inode_cache
    fs/ext3/xattr.c (fs/mbcache.c)     ext3_xattr
    fs/fat/cache.c                     fat_cache
    fs/fat/inode.c                     fat_inode_cache
    fs/freevxfs/vxfs_super.c           vxfs_inode
    fs/hpfs/super.c                    hpfs_inode_cache
    fs/isofs/inode.c                   isofs_inode_cache
    fs/jffs/inode-v23.c                jffs_fm
    fs/jffs2/super.c                   jffs2_i
    fs/jfs/super.c                     jfs_ip
    fs/minix/inode.c                   minix_inode_cache
    fs/ncpfs/inode.c                   ncp_inode_cache
    fs/nfs/direct.c                    nfs_direct_cache
    fs/nfs/inode.c                     nfs_inode_cache
    fs/ntfs/super.c                    ntfs_big_inode_cache_name
    fs/ntfs/super.c                    ntfs_inode_cache
    fs/ocfs2/dlm/dlmfs.c               dlmfs_inode_cache
    fs/ocfs2/super.c                   ocfs2_inode_cache
    fs/proc/inode.c                    proc_inode_cache
    fs/qnx4/inode.c                    qnx4_inode_cache
    fs/reiserfs/super.c                reiser_inode_cache
    fs/romfs/inode.c                   romfs_inode_cache
    fs/smbfs/inode.c                   smb_inode_cache
    fs/sysv/inode.c                    sysv_inode_cache
    fs/udf/super.c                     udf_inode_cache
    fs/ufs/super.c                     ufs_inode_cache
    net/socket.c                       sock_inode_cache
    net/sunrpc/rpc_pipe.c              rpc_inode_cache

The choice of which slab caches to so mark was quite simple.  I marked
those already marked SLAB_RECLAIM_ACCOUNT, except for fs/xfs, dentry_cache,
inode_cache, and buffer_head, which were marked in a previous patch.  Even
though SLAB_RECLAIM_ACCOUNT is for a different purpose, it marks the same
potentially large file system i/o related slab caches as we need for memory
spreading.

Given that the rule now becomes "wherever you would have used a
SLAB_RECLAIM_ACCOUNT slab cache flag before (usually the inode cache), use
the SLAB_MEM_SPREAD flag too", this should be easy enough to maintain.
Future file system writers will just copy one of the existing file system
slab cache setups and tend to get it right without thinking.

Signed-off-by: Paul Jackson <pj@sgi.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-03-24 07:33:23 -08:00
Theodore Ts'o
9b04c997b1 [PATCH] vfs: MS_VERBOSE should be MS_SILENT
The meaning of MS_VERBOSE is backwards; if the bit is set, it really means,
"don't be verbose".  This is confusing and counter-intuitive.

In addition, there is also no way to set the MS_VERBOSE flag in the
mount(8) program in util-linux, but interesting, it does define options
which would do the right thing if MS_SILENT were defined, which
unfortunately we do not:

#ifdef MS_SILENT
  { "quiet",    0, 0, MS_SILENT    },   /* be quiet  */
  { "loud",     0, 1, MS_SILENT    },   /* print out messages. */
#endif

So the obvious fix is to deprecate the use of MS_VERBOSE and replace it
with MS_SILENT.

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-03-24 07:33:15 -08:00
Arjan van de Ven
a11f3a0574 [PATCH] sem2mutex: vfs_rename_mutex
Semaphore to mutex conversion.

The conversion was generated via scripts, and the result was validated
automatically via a script as well.

Signed-off-by: Arjan van de Ven <arjan@infradead.org>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Cc: Al Viro <viro@ftp.linux.org.uk>
Cc: Christoph Hellwig <hch@lst.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-03-23 07:38:12 -08:00
Alexey Dobriyan
4de151d8cd It's UTF-8
Fix some comments to "UTF-8".

Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
Signed-off-by: Adrian Bunk <bunk@stusta.de>
2006-03-22 00:13:35 +01:00
Steve French
88274815f7 [CIFS] Fix two remaining coverity scan tool warnings.
Signed-off-by: Steve French <sfrench@us.ibm.com>
2006-03-09 22:21:45 +00:00
Steve French
e77e6f3be9 [CIFS] Always match oplock break (cache notification) to the right tcp
session when multiply mounted.

Fixes slow response when cifs client is mounted to shares on multiple
servers and oplock break occurs (usually due to attempt to multiply open a
file).  When treeids on mutiple mounted shares match and we find the wrong
match first, we searched for the wrong cached files to send oplock break
response for which usually meant that no matching file was found and thus
the server would have to timeout the notification.  Oplock break timeout is
about 20 seconds on some servers so this could cause significantly slower
performance on file open calls in a few cases (in particular when multiple
shares are mounted from multiple servers, tree ids match, and we have a
cached file which is later opened multiple times).  This was the most
important of the bugs that was found and fixed at Connectathon
(interoperability testing event) this week.

Acked-by:  Shaggy (shaggy@austin.ibm.com)
Signed-off-by: Steve French (sfrench@us.ibm.com)
2006-03-05 03:39:55 +00:00
Steve French
beb84dc818 [CIFS] Set correct lock type on new posix unlock call
Signed-off-by: Steve French <sfrench@us.ibm.com>
2006-03-03 23:36:34 +00:00
Steve French
13298defe5 [CIFS] Upate cifs change log
Signed-off-by: Steve French <sfrench@us.ibm.com>
2006-03-03 10:45:19 +00:00
Steve French
d7c8c94d3e [CIFS] Fix slow oplock break response when mounts to different
servers have same tid and we try to match oplock break to wrong tid.

Signed-off-by: Steve French <sfrench@us.ibm.com>
2006-03-03 10:43:49 +00:00
Steve French
083d3a2cff [CIFS] Workaround various server bugs found in testing at connectathon
- slow down negprot 1ms during mount when RFC1001 over port 139
	to give buggy servers time to clear sess_init
	- remap some plausible but incorrect SMB return codes to the
	right ones in truncate and hardlink paths

Signed-off-by: Steve French <sfrench@us.ibm.com>
2006-03-03 09:53:36 +00:00
Steve French
a4e85b5f62 [CIFS] Allow fallback for setting file size to Procom SMB server when
returns error invalid level

Signed-off-by: Steve French <sfrench@us.ibm.com>
2006-03-02 03:53:17 +00:00
Steve French
82940a4658 [CIFS] Make POSIX CIFS Extensions SetFSInfo match exactly what we want
not just the posix path feature.

Signed-off-by: Steve French <sfrench@us.ibm.com>
2006-03-02 03:24:57 +00:00
Steve French
46c79a645a [CIFS] Move noisy debug message (triggerred by some older servers) from
error to informational unless frame is rejected.

Signed-off-by: Steve French <sfrench@us.ibm.com>
2006-03-02 00:07:08 +00:00
Steve French
f26282c9af [CIFS] Use correct pid on new cifs posix byte range lock call
Signed-off-by: Steve French <sfrench@us.ibm.com>
2006-03-01 09:17:37 +00:00
Steve French
08547b036b [CIFS] Add posix (advisory) byte range locking support to cifs client
Samba (version 3) server support for this is also currently being
done.  This client code is in an experimental path (requires enabling
/proc/fs/cifs/Experimental) while it is being tested.

Signed-off-by: Steve French <sfrench@us.ibm.com>
2006-02-28 22:39:25 +00:00
Steve French
d47d7c1a85 [CIFS] CIFS readdir perf optimizations part 1
Signed-off-by: Steve French <sfrench@us.ibm.com>
2006-02-28 03:45:48 +00:00
Steve French
4b8f930ff8 [CIFS] Free small buffers earlier so we exceed the cifs
small req buffer pool less often.

Signed-off-by: Steve French <sfrench@us.ibm.com>
2006-02-26 16:41:18 +00:00
Steve French
184ed2110a [CIFS] Fix large (ie over 64K for MaxCIFSBufSize) buffer case for wrapping
bcc on read response and for wrapping sessionsetup maxbufsize field

Signed-off-by: Steve French <sfrench@us.ibm.com>
2006-02-24 06:15:11 +00:00
Steve French
5d2f248a5f Merge with /pub/scm/linux/kernel/git/torvalds/linux-2.6.git
Signed-off-by: Steve French <sfrench@us.ibm.com>
2006-02-22 23:38:53 +00:00
Steve French
6cec2aed86 [PATCH] CIFS: CIFSSMBRead was returning an invalid pointer in buf on socket error
Thanks to Adrian Bunk for debugging the problem and to Shaggy for
helping find the solution.

Also added a fix for 64K pages we found in loosely-related testing

Signed-off-by: Dave Kleikamp <shaggy@austin.ibm.com>
Signed-off-by: Steve French <sfrench@us.ibm.com>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-02-22 15:20:33 -08:00
Eric Sesterhenn
a048d7a870 [CIFS] Convert remaining places in fs/cifs from
kmalloc/memset to simpler kzalloc usage

Signed-off-by: Eric Sesterhenn <snakebyte@gmx.de>
Signed-off-by: Steve French <sfrench@us.ibm.com>
2006-02-21 22:33:09 +00:00
Steve French
27754b3460 Merge with /pub/scm/linux/kernel/git/torvalds/linux-2.6.git
Signed-off-by: Steve French <sfrench@us.ibm.com>
2006-02-15 20:13:52 +00:00
Steve French
93544cc648 [PATCH] CIFS: fix cifs_user_read oops when null SMB response on forcedirectio mount
This patch fixes an oops reported by Adrian Bunk in cifs_user_read when a null
read response is returned on a forcedirectio mount.

Signed-off-by: Dave Kleikamp <shaggy@austin.ibm.com>
Signed-off-by: Steve French <sfrench@us.ibm.com>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-02-14 19:46:25 -08:00
Steve French
5815449d1b [CIFS] SessionSetup cleanup part 2
The cifs session setup code has three cases, and a fourth for backlevel
LANMAN2 style session setup needed to be added.  This new session setup
implmentation will eventually replace the other three and should be
easier to read while fixing a few minor problems (not setting
the LARGE READ/WRITEX flags when NTLMSSP was negotiated for example) and
adding support for NTLMv2 (which will be added with the next patch. In the
meantime, this code is marked in an CONFIG_CIFS_EXPERIMENTAL block and will
not be turned on by default until it is tested against more server types.

Signed-off-by: Steve French <sfrench@us.ibm.com>
2006-02-14 01:36:20 +00:00
Steve French
04fdabe17c [CIFS] fix compile error (typo) and warning in cifssmb.c
Signed-off-by: Steve French <sfrench@us.ibm.com>
2006-02-10 05:52:50 +00:00
Steve French
12b3b8ffb5 [CIFS] Cleanup NTLMSSP session setup handling
Fix to hash NTLMv2 properly will follow.

Signed-off-by: Steve French <sfrench@us.ibm.com>
2006-02-09 21:12:47 +00:00
Steve French
1877c9ea66 [CIFS] Remove compiler warning
Signed-off-by: Steve French <sfrench@us.ibm.com>
2006-01-27 18:36:11 -08:00
Steve French
eb9bdaa3f3 Signed-off-by: Steve French <sfrench@us.ibm.com> 2006-01-27 15:11:47 -08:00
Steve French
17cbbafe8e [CIFS] Make cifs default wsize match what we actually want to send (52K
typically - header + 13 pages).

Forgetting to set wsize on the mount command costs more than 10% on large
write (can be much more) so this makes a saner default.  We still shrink
this default smaller if server can not support it.

Signed-off-by: Steve French <sfrench@us.ibm.com>
2006-01-24 20:26:48 -08:00
Steve French
0820e15a35 [CIFS] Do not zero non-existent iovec in SendReceive response processing.
Could cause memory leak in some readpaths depending on what junk followed it in the stack.

Signed-off-by: Steve French <sfrench@us.ibm.com>
2006-01-23 12:50:04 -08:00
Steve French
47c886b312 [CIFS] Fix oops in cifs_readpages caused by not checking buf_type in an
error path of new cifs_readpages code.

Signed-off-by: Steve French <sfrench@us.ibm.com>
2006-01-18 14:20:39 -08:00
Steve French
d41f084a74 [CIFS] Remove compiler warning
Signed-off-by: Benoit Boissinot <benoit.boissinot@ens-lyon.org>
Signed-off-by: Steve French <sfrench@us.ibm.com>
2006-01-17 19:16:53 -08:00
Steve French
eeac8047fc [CIFS] Fix CIFS to recognize share mode security
Fix Samba bugzilla bug 3301

In share mode encrypted password must be sent on tree connection (in our
case only the NTLM password is sent, not the older LANMAN one).

Signed-off-by: Steve French <sfrench@us.ibm.com>
2006-01-13 21:34:58 -08:00
Steve French
84153973a2 [CIFS] Fix typo
Signed-off-by: Steve French <sfrench@us.ibm.com>
2006-01-12 20:57:56 -08:00
Steve French
0a4b92c05e [CIFS] Add worker function for Get ACL cifs style
Signed-off-by: Steve French <sfrench@us.ibm.com>
2006-01-12 15:44:21 -08:00
Steve French
94bc2be31a Merge with /pub/scm/linux/kernel/git/torvalds/linux-2.6.git
Signed-off-by: Steve French <sfrench@us.ibm.com>
2006-01-12 14:47:08 -08:00
Steve French
c32a0b689c [CIFS] Allow local filesize for file that is open for write to be updated
from server when mount forcedirectio.

Allowing update of file size with non forcedirectio mounts should be
allowed in the fiture but requires carefully writing out the
last page in the local file if it is a partial page in order to
avoid corruption and careful serialization

Thanks to Maximiliano Curia who suggested similar changes and provided
a testcase.

Signed-off-by: Steve French <sfrench@us.ibm.com>
2006-01-12 14:41:28 -08:00
Jesper Juhl
3c6bee1d40 [PATCH] turn "const static" into "static const"
ICC likes to complain about storage class not being first, GCC doesn't
care much (except for cases like "inline static").
have a hard time seeing how it could break anything.

Thanks to Gabriel A. Devenyi for pointing out
http://linuxicc.sourceforge.net/ which is what made me create this patch.

Signed-off-by: Jesper Juhl <jesper.juhl@gmail.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-01-10 08:01:55 -08:00
Jes Sorensen
1b1dcc1b57 [PATCH] mutex subsystem, semaphore to mutex: VFS, ->i_sem
This patch converts the inode semaphore to a mutex. I have tested it on
XFS and compiled as much as one can consider on an ia64. Anyway your
luck with it might be different.

Modified-by: Ingo Molnar <mingo@elte.hu>

(finished the conversion)

Signed-off-by: Jes Sorensen <jes@sgi.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
2006-01-09 15:59:24 -08:00
OGAWA Hirofumi
28fd129827 [PATCH] Fix and add EXPORT_SYMBOL(filemap_write_and_wait)
This patch add EXPORT_SYMBOL(filemap_write_and_wait) and use it.

See mm/filemap.c:

And changes the filemap_write_and_wait() and filemap_write_and_wait_range().

Current filemap_write_and_wait() doesn't wait if filemap_fdatawrite()
returns error.  However, even if filemap_fdatawrite() returned an
error, it may have submitted the partially data pages to the device.
(e.g. in the case of -ENOSPC)

<quotation>
Andrew Morton writes,

If filemap_fdatawrite() returns an error, this might be due to some
I/O problem: dead disk, unplugged cable, etc.  Given the generally
crappy quality of the kernel's handling of such exceptions, there's a
good chance that the filemap_fdatawait() will get stuck in D state
forever.
</quotation>

So, this patch doesn't wait if filemap_fdatawrite() returns the -EIO.

Trond, could you please review the nfs part?  Especially I'm not sure,
nfs must use the "filemap_fdatawrite(inode->i_mapping) == 0", or not.

Acked-by: Trond Myklebust <trond.myklebust@fys.uio.no>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-01-08 20:13:47 -08:00
Steve French
f3f6ec4b77 [CIFS] Fix cifs trying to write to f_ops
patch 2ea55c01e0 fixed CIFS clobbering the
global fops structure for some per mount setting, by duplicating and having
2 fops structs. However the write to the fops was left behind, which is a
NOP in practice (due to the fact that we KNOW the fops has that field set
to NULL already due to the duplication). So remove it... In addition, another
instance of the same bug was forgotten in november.

Signed-off-by: Arjan van de Ven <arjan@infradead.org>
Signed-off-by: Steve French <sfrench@us.ibm.com>
2006-01-08 20:12:58 -08:00
Steve French
a6230af7bd [CIFS] Minor cleanup to new cifs acl header.
Signed-off-by: Steve French <sfrench@us.ibm.com>
2006-01-08 20:04:55 -08:00
Steve French
fdf7f2e919 [CIFS] Fix typos in rfc1002pdu.h
Pointed out by Leo Comitale

Signed-off-by: Steve French <sfrench@us.ibm.com>
2005-12-31 10:29:42 -08:00
Steve French
ec637e3ffb [CIFS] Avoid extra large buffer allocation (and memcpy) in cifs_readpages
Signed-off-by: Steve French <sfrench@us.ibm.com>
2005-12-12 20:53:18 -08:00
Steve French
07475ffba5 [CIFS] Display large/small total buffer allocations in /proc/fs/cifs/Stats
when CONFIG_CIFS_STATS2 is on (helps in debugging performance)

Signed-off-by: Steve French <sfrench@us.ibm.com>
2005-12-03 14:11:37 -08:00
Steve French
4498eed50a [CIFS] Add extended stats (STATS2) for total buffer allocations for
better performance debugging.

Signed-off-by: Steve French <sfrench@us.ibm.com>
2005-12-03 13:58:57 -08:00
Steve French
84afc29b18 [CIFS] Readpages and readir performance improvements - eliminate extra
memcpy.  Part 1

Signed-off-by: Steve French <sfrench@us.ibm.com>
2005-12-02 13:32:45 -08:00
Steve French
bf82067917 [CIFS] Kerberos and CIFS ACL support part 1
Signed-off-by: Steve French <sfrench@us.ibm.com>
2005-12-01 22:32:42 -08:00
Steve French
83451879ab [CIFS] Use fsuid (fsgid) more consistently instead of uid/gid in
assembling smb requests when setuids and Linux protocol extensions enabled
and in checking more matching sessions in multiuser mount mode.

Pointed out by Shaggy.

Signed-off-by: Steve French <sfrench@us.ibm.com>
2005-12-01 17:12:59 -08:00
Steve French
25741b3e43 [CIFS] For previous fix, mode on mkdir needed S_IFDIR left out.
Signed-off-by: Steve French <sfrench@us.ibm.com>
2005-11-29 22:38:43 -08:00
Steve French
2a138ebb01 [CIFS] Missing parenthesis and typo in previous fix
Signed-off-by: Steve French <sfrench@us.ibm.com>
2005-11-29 21:22:19 -08:00
Steve French
6ab16d2495 [CIFS] Fix umount --force to wake up the pending response queue, not just
the request queue. Also periodically wakeup response_q so threads can
check if stuck requests have timed out. Workaround Windows server illegal smb
length on transact2 findfirst response.

Signed-off-by: Steve French <sfrench@us.ibm.com>
2005-11-29 20:55:11 -08:00
Steve French
6473a559c3 [CIFS] Fix missing permission check on setattr when noperm mount option is
disabled.  Also set mode, uid, gid better on mkdir and create for the
case when Unix Extensions is not enabled and setuids is enabled. This is
necessary to fix the hole in which chown could be allowed for non-root
users in some cases if root mounted, and also to display the mode and uid
properly in some cases.

Signed-off-by: Steve French <sfrench@us.ibm.com>
2005-11-29 20:20:10 -08:00
Steve French
3abb92722a [CIFS] When file is deleted locally but later recreated on the server
fix cifs negative dentries so they are freed faster (not requiring
umount or readdir e.g.) so the client recognizes the new file on
the server more quickly.

Signed-off-by: Steve French <sfrench@us.ibm.com>
2005-11-28 08:16:13 -08:00
Steve French
cdbce9c87e [CIFS] Fix setattr of mode only (e.g. in some chmod cases) to Windows
so it does not return EACCESS (unless server really returns that).

Signed-off-by: Steve French <sfrench@us.ibm.com>
2005-11-19 21:04:52 -08:00
Steve French
86c96b4bb7 [CIFS] Fix mknod of block and chardev over SFU mounts
Signed-off-by: Steve French <sfrench@us.ibm.com>
2005-11-18 20:25:31 -08:00
Steve French
c119b87d59 [CIFS] Missing part of previous patch
Signed-off-by: Steve French <sfrench@us.ibm.com>
2005-11-18 12:27:27 -08:00
Steve French
3020a1f58c [CIFS] Fix scheduling while atomic when pending writes at file close time
Fix the case in which readdir reset file type when SFU mount option
specified.

Also fix sfu related functions to not request EAs (xattrs) when not
configured in Kconfig

Signed-off-by: Steve French <sfrench@us.ibm.com>
2005-11-18 11:31:10 -08:00
Steve French
87c89dd733 [CIFS] Vectored and async i/o turned on and correct the
writev and aio_write to flush properly.

This is Christoph's patch merged with the new nobrl file operations

Signed-off-by: Dave Kleikamp <shaggy@austin.ibm.com>

From: Christoph Hellwig <hch@lst.de>

 - support vectored and async aio ops unconditionally - this is above
   the pagecache and transparent to the fs
 - remove cifs_read_wrapper.  it was only doing silly checks and
   calling generic_file_write in all cases.
 - use do_sync_read/do_sync_write as read/write operations.  They call
   ->readv/->writev which we now always implemente.
 - add the filemap_fdatawrite calls to writev/aio_write which were
   missing previously compared to plain write.  no idea what the point
   behind them is, but let's be consistent at least..

Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Steven French <sfrench@us.ibm.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
2005-11-17 17:03:00 -08:00
Steve French
9e294f1c4d [CIFS] Recognize properly symlinks and char/blk devices (not just
FIFOs) created by SFU (part 2 of 2).

    Thanks to Martin Koeppe for useful analysis.

    Signed-off-by: Steve French <sfrench@us.ibm.com>
2005-11-17 16:59:21 -08:00
Steve French
0f2b27c438 [CIFS] Fix sparse warnings on smb bcc (byte count)
Signed-off-by: Dave Kleikamp <shaggy@austin.ibm.com>
Signed-off-by: Steve French <sfrench@us.ibm.com>
2005-11-16 14:25:50 -08:00
Steve French
ff7feac963 [CIFS] Fix endian errors (setfacl/getfacl failures) in handling ACLs
(and a ppc64 compiler warning)

Signed-off-by: Dave Kleikamp <shaggy@austin.ibm.com>
Signed-off-by: Steve French <sfrench@us.ibm.com>
2005-11-15 16:45:16 -08:00
Steve French
d6e2f2a4c8 [CIFS] Recognize properly symlinks and char/blk devices (not just FIFOs)
created by SFU (part 1 of 2).

Signed-off-by: Steve French <sfrench@us.ibm.com>
2005-11-15 16:43:39 -08:00
Steve French
e89dc92096 [CIFS] Cleanup sparse warnings for unicode little endian casts
Following Shaggy's suggestion, do a better job on the unicode string
handling routines in cifs in specifying that the wchar_t are really
little endian widechars (__le16).

Signed-off-by: Steve French <sfrench@us.ibm.com>
2005-11-11 15:18:19 -08:00
Steve French
8b94bcb923 [CIFS] Fix CIFS "nobrl" mount option so does not disable sending brl requests
for all mounts just that particular mount.

Found by Arjan Vand de Ven

Signed-off-by: Steve French <sfrench@us.ibm.com>
2005-11-11 11:41:00 -08:00
Steve French
69114089b7 [CIFS] Reduce sparse endian warnings
Signed-off-by: Steve French <sfrench@us.ibm.com>
2005-11-10 19:28:44 -08:00
Steve French
3c50c61826 [CIFS] Update CIFS change log
Signed-off-by: Steve French <sfrench@us.ibm.com>
2005-11-10 17:31:33 -08:00
Steve French
a2653ebab3 [CIFS] Reserve upcall IDX value for CIFS with connector header and add
Kconfig option for CIFS upcall.

Signed-off-by: Steve French <sfrench@us.ibm.com>
2005-11-10 15:33:38 -08:00
Steve French
7b7abfe3dd 2005-11-09 15:21:09 -08:00
Steve French
e82b3aec8d Merge with /pub/scm/linux/kernel/git/torvalds/linux-2.6.git 2005-11-09 14:33:22 -08:00
Jesper Juhl
f99d49adf5 [PATCH] kfree cleanup: fs
This is the fs/ part of the big kfree cleanup patch.

Remove pointless checks for NULL prior to calling kfree() in fs/.

Signed-off-by: Jesper Juhl <jesper.juhl@gmail.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-11-07 07:54:06 -08:00
Steve French
ec58ef0328 [CIFS] Update kconfig for cifs
Add cifs extended stats configure option and reduce experimental code.

Signed-off-by: Steve French <sfrench@us.ibm.com>
2005-11-04 09:44:33 -08:00
Steve French
0753ca7bc2 [CIFS] Change pragma pack(1) to attribute(packed) to allow cifs on arm to access
unaligned structures coming in off the wire

gcc on arm processors generates very odd code with pragma pack specified -
although it does pack the structures in some sense - it does not allow you
to access unaligned elements in nested structures at the right offset as other
architectures do.  Oddly enough though, specifying the structures as packed
the long way - one by one with the packed attribute does work.  Rather than
fighting over whether this is a gcc bug or some obscure side effect
of pragma pack, it is easier to do what most (all but 96 other places in
the kernel) do - and replace pragma pack with dozens of attribute(packed)
structure qualifiers.  Much more verbose ... but at least it works.

Signed-off-by: David Kleikamp <shaggy@austin.ibm.com>
Signed-off-by: Steve French <sfrench@us.ibm.com>  CG: -----------------------------------------------------------------------
2005-10-27 13:55:12 -07:00
Steve French
d6d3f5bc68 Merge with /pub/scm/linux/kernel/git/sfrench/cifs-2.6.git/ 2005-10-21 08:39:12 -07:00
Steve French
23e7dd7d95 [CIFS] Defer close of file handle slightly if there are pending writes that
need to get in ahead of it that depend on that file handle. Fixes
occassional bad file handle errors on write with heavy use multiple process
cases.

Signed-off-by: Steve French <sfrench@us.ibm.com>
2005-10-20 13:44:56 -07:00
Steve French
84d2f07e8e CIFS: cifs_writepages should not write beyond end of file
Signed-off-by: Dave Kleikamp <shaggy@austin.ibm.com>
Signed-off-by: Steve French <sfrench@us.ibm.com>
2005-10-12 15:32:05 -07:00
Steve French
47c786e79b [CIFS] Add null malloc response check in notify experimental code
Signed-off-by: Steve French (sfrench@us.ibm.com)
2005-10-11 20:03:18 -07:00
Steve French
1047abc159 [CIFS] CIFS Stats improvements
New cifs_writepages routine was not updated bytes written in cifs stats.
Also added ability to clear /proc/fs/cifs/Stats by writing (0 or 1) to it.
Signed-off-by: Steve French <sfrench@us.ibm.com>
2005-10-11 19:58:06 -07:00
Steve French
4ca9c190d9 [CIFS] Fix oops in experimental notify code (when CONFIG_CIFS_EXPERIMENTAL
was turned on).

Signed-off-by: Steve French <sfrench@us.ibm.com>
2005-10-10 19:52:13 -07:00
Steve French
34210f3302 [CIFS] Still missing a line from previous fix
Signed-off-by: Steve French (sfrench@us.ibm.com)
2005-10-10 14:31:13 -07:00
Steve French
9e2e85f82f [CIFS] Fix minor build problem with previous changeset
Signed-off-by: Steve French <sfrench@us.ibm.com>
2005-10-10 14:28:38 -07:00
Steve French
b387eaeb66 [CIFS] Do not shrink tcp sndbuf/rcvbuf from their defaults
Signed-off-by: Steve French <sfrench@us.ibm.com>
2005-10-10 14:21:15 -07:00
Steve French
5e1253b501 [CIFS] Correct cifs tcp retry when some data sent before getting EAGAIN.
Continue implementation of cifs umount begin to allow force unmounts of
cifs mounts.

Signed-off-by: Steve French <sfrench@us.ibm.com>
2005-10-10 14:06:37 -07:00
Steve French
02c37a6df5 [CIFS] Update cifs version to 1.38
Signed-off-by: Steve French <sfrench@us.ibm.com>
2005-10-10 11:49:37 -07:00
Steve French
190fdeb844 [CIFS] Fix byte range locking to Windows when Windows server returns
illegal RFC1001 length (which had caused the lock to block forever
until killed).
2005-10-10 11:48:26 -07:00
Steve French
0ae0efada3 [CIFS] Fix rsize calculation so that large readx flag is checked.
Signed-off-by: Steve French (sfrench@us.ibm.com)
2005-10-10 10:57:19 -07:00
Steve French
68058e7575 [CIFS] Reduce CIFS tcp congestion timeout (it was too long) and backoff
ever longer amounts (up to 15 seconds).  This improves performance
especially when using large wsize.

Signed-off-by: Steve French (sfrench@us.ibm.com)
2005-10-10 10:34:22 -07:00
Steve French
131afd0b74 [CIFS] /proc/fs/cifs debug code cleanup and new stats2
These changes to debug code and new stats are helpful in
debugging potential tcp performance/configuration problems under cifs.

Signed-off-by: Steve French <sfrench@us.ibm.com>
2005-10-07 09:51:05 -07:00
Steve French
dd99cd803d [CIFS] cleanup sparse and compile errors in previous fix
Signed-off-by: Steve French (sfrench@us.ibm.com)
2005-10-05 19:32:49 -07:00
Steve French
4a77118cd5 CIFS: Allow wsize to exceed CIFSMaxBufSize
This allows cifs_writepages to send data in larger chunks from the page
cache, without requiring larger memory allocations in other cases.

Signed-off-by: Dave Kleikamp <shaggy@austin.ibm.com>
Signed-off-by: Steve French <sfrench@us.ibm.com>
2005-10-05 15:14:33 -07:00
Steve French
37c0eb4677 CIFS: implement cifs_writepages to perform multi-page I/O
Signed-off-by: Dave Kleikamp <shaggy@austin.ibm.com>
Signed-off-by: Steve French <sfrench@us.ibm.com>
2005-10-05 14:50:29 -07:00
Steve French
6148a742b2 CIFS: Create routine find_writable_file to reduce redundant code
Signed-off-by: Dave Kleikamp <shaggy@austin.ibm.com>
Signed-off-by: Steve French <sfrench@us.ibm.com>
2005-10-05 12:23:19 -07:00
Steve French
04c08816d6 [CIFS] Missing parenthesis from error message in previous fix
Signed-off-by: Steve French (sfrench@us.ibm.com)
2005-10-03 19:33:15 -07:00
Steve French
8cc64c6ecf [CIFS] Allow SMBWrite2 to work to older servers
Signed-off-by: Steve French (sfrench@us.ibm.com)
2005-10-03 13:49:43 -07:00
Steve French
3e84469d01 [CIFS] Add writepages support to shrink memory usage on writes,
eliminate the double copy, and improve cifs write performance and
help the server by upping the typical write size from 4K to 16K
(or even larger if wsize set explicitly)  for servers which support this.
Part 1 of 2

Signed-off-by: Dave Kleikamp <shaggy@austin.ibm.com>
Signed-off-by: Steve French  <sfrench@us.ibm.com>
2005-10-03 13:37:24 -07:00
Steve French
ede1327ea4 [PATCH] cifs: Add support for suspend
cifsd had been preventing software suspend from completing.

Signed-off-by: pavel@suse.de
Signed-off-by: Steve French <sfrench@us.ibm.com>  lightly modified
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-09-23 11:37:53 -07:00
Steve French
70ca734a14 [CIFS] Various minor bigendian fixes and sparse level 2 warning message fixes
Most important of these fixes mapchars on bigendian and a few statfs fields

Signed-off-by: Shaggy (shaggy@austin.ibm.com)
Signed-off-by: Steve French (sfrench@us.ibm.com)
2005-09-22 16:32:06 -07:00
Steve French
2096243885 [CIFS] Add support for legacy servers part nine. statfs (df and du) is now
functional, and the length check is fixed so readdir does not throw a
warning message when windows me messes up the response to FindFirst
of an empty dir (with only . and ..).

Signed-off-by: Steve French (sfrench@us.ibm.com)
2005-09-21 22:05:57 -07:00
Steve French
e30dcf3a19 [CIFS] Add support for legacy servers part eight. Write fixes for Windows
ME, and do not set ctime unless explicitly requested with atime and/or
mtime (it gets thrown away by most servers anyway as there is no way to set
this via posix).

Signed-off-by: Steve French (sfrench@us.ibm.com)
2005-09-20 20:49:16 -07:00
Steve French
3e87d80391 [CIFS] Add support for legacy servers part seven. Fix open for write,
begin implementation of Win9x style set file size via open then
write of zero bytes.

Signed-off-by: Steve French (sfrench@us.ibm.com)
2005-09-18 20:49:21 -07:00
Steve French
f9f5c81769 [CIFS] Add support for legacy servers part six. Fix read syntax so
we do not request more than negotiated buffer size even if buffer
size is small (smaller than one page)

Signed-off-by: Steve French (sfrench@us.ibm.com)
2005-09-15 23:06:38 -07:00
Steve French
eafe870121 [CIFS] 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.

Signed-off-by: Steve French (sfrench@us.ibm.com)
2005-09-15 21:47:30 -07:00
Steve French
ab2f218f4f [CIFS] Fix compiler warnings
Fix some compiler warnings noticed on x64 by me and ppc64 by Shaggy

Signed-off-by: Steve French (sfrench@us.ibm.com)
2005-09-15 20:44:50 -07:00
Nishanth Aravamudan
041e0e3b19 [PATCH] fs: fix-up schedule_timeout() usage
Use schedule_timeout_{,un}interruptible() instead of
set_current_state()/schedule_timeout() to reduce kernel size.  Also use helper
functions to convert between human time units and jiffies rather than constant
HZ division to avoid rounding errors.

Signed-off-by: Nishanth Aravamudan <nacc@us.ibm.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-09-10 10:06:36 -07:00
Pekka Enberg
e915fc497a [PATCH] fs: convert kcalloc to kzalloc
This patch converts kcalloc(1, ...) calls to use the new kzalloc() function.

Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-09-07 16:57:46 -07:00
Miklos Szeredi
e08fc0457a [PATCH] cifs_create() fix
cifs_create() did totally the wrong thing with nd->intent.open.flags:
it interpreted nd->intent.open.flags as the original open flags, not
the one transformed for open_namei().  Also it used the intent data
even if it was not filled in (if called from sys_mknod()).

Signed-off-by: Miklos Szeredi <miklos@szeredi.hu>
Cc: <viro@parcelfarce.linux.theplanet.co.uk>
Cc: Christoph Hellwig <hch@lst.de>
Cc: Steven French <sfrench@us.ibm.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-09-07 16:57:44 -07:00
Steve French
9a899e7668 [CIFS] Update cifs TODO list with additional new features that
have been requested.

Signed-off-by: Steve French (sfrench@us.ibm.com)
2005-09-06 15:55:49 -07:00
Steve French
bfa0d75a1e [CIFS] Add support for legacy servers part 5
Handle small negotiated read sizes (under 4K) and finish up
read and write support.

Signed-off-by: Steve French <sfrench@us.ibm.com>
2005-08-31 21:50:37 -07:00
Steve French
1c9551878c [CIFS] Add support for legacy servers part 4
Fix WriteX support for old servers which do not support large
	files.

Signed-off-by: Steve French <sfrench@us.ibm.com>
2005-08-30 20:58:07 -07:00
Steve French
cb8be64084 [CIFS] Add nolock synonym (ala nfs) for nobrl to disable sending byte range
locks remotely.

Signed-off-by: Steve French (sfrench@us.ibm.com)
2005-08-30 15:25:52 -07:00
Steve French
16abbecdad [CIFS] Add support for suspend
cifsd had been preventing software suspend from completing.

Signed-off-by: pavel@suse.de
Signed-off-by: Steve French <sfrench@us.ibm.com>  lightly modified
---

 fs/cifs/CHANGES   |    3 ++-
 fs/cifs/cifsfs.c  |    4 ++++
 fs/cifs/connect.c |    2 ++
 3 files changed, 8 insertions(+), 1 deletions(-)
2005-08-30 13:10:14 -07:00
Steve French
2016ef789a Merge with /pub/scm/linux/kernel/git/torvalds/linux-2.6.git 2005-08-30 11:33:26 -07:00
Steve French
7f57356b70 [CIFS] Remove cifs_sb argument from *build_path_from_dentry
This argument was added in a recent patch, but is unnecessary, since
the superblock is easily obtained from the dentry.

Signed-off-by: Dave Kleikamp <shaggy@austin.ibm.com>
Signed-off-by: Steve French <sfrench@us.ibm.com>
2005-08-30 11:32:14 -07:00
Steve French
d634cc15e8 [PATCH] Fix oops in fs/locks.c on close of file with pending locks
The recent change to locks_remove_flock code in fs/locks.c changes how
byte range locks are removed from closing files, which shows up a bug in
cifs.

The assumption in the cifs code was that the close call sent to the
server would remove any pending locks on the server on this file, but
that is no longer safe as the fs/locks.c code on the client wants unlock
of 0 to PATH_MAX to remove all locks (at least from this client, it is
not possible AFAIK to remove all locks from other clients made to the
server copy of the file).

Note that cifs locks are different from posix locks - and it is not
possible to map posix locks perfectly on the wire yet, due to
restrictions of the cifs network protocol, even to Samba without adding
a new request type to the network protocol (which we plan to do for
Samba 3.0.21 within a few months), but the local client will have the
correct, posix view, of the lock in most cases.

The correct fix for cifs for this would involve a bigger change than I
would like to do this late in the 2.6.13-rc cycle - and would involve
cifs keeping track of all unmerged (uncoalesced) byte range locks for
each remote inode and scanning that list to remove locks that intersect
or fall wholly within the range - locks that intersect may have to be
reaquired with the smaller, remaining range.

Signed-off-by: Steve French <sfrench@us.ibm.com>
Signed-off-by: Dave Kleikamp <shaggy@austin.ibm.com>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-08-26 16:05:35 -07:00
Steve French
a9d02ad490 [CIFS] Support for legacy servers part 3 - Add support for Open and most
of Read support.

Signed-off-by: Steve French <sfrench@us.ibm.com>
2005-08-24 23:06:05 -07:00
Steve French
e22cb8bcb8 [CIFS] Use file instead of dentry in cifs dir_notify struct
Signed-off-by: Steve French <sfrench@us.ibm.com>
2005-08-24 20:25:21 -07:00
Steve French
167a251ad6 [CIFS] Change notify support part 3
Signed-off-by: Steve French <sfrench@us.ibm.com>
2005-08-24 20:03:11 -07:00
Steve French
abb15b8ae4 [CIFS] Missing line from previous patch
Signed-off-by: Steve French (sfrench@us.ibm.com)
2005-08-24 18:51:02 -07:00
Steve French
ff5dbd9ead [CIFS] Change notify support part 2
Signed-off-by: Asser Ferno <asser@diku.dk>
Signed-off-by: Steve French <sfrench@us.ibm.com> and lightly modified
2005-08-24 17:10:36 -07:00
Steve French
e2a98a7543 [CIFS] Update thanks/contributor list with Miklos Szeredi
(Signed-off-by: Miklos Szeredi <miklos@szeredi.hu>
also should have been listed on the last cifs patch fixing some lookup
intent handling in cifs)

Signed-off-by: Steve French <sfrench@us.ibm.com>
2005-08-24 14:43:14 -07:00
Steve French
c0c3e8edaa CIFS: Fix typos in fs/cifs/CHANGES
Signed-off-by: Dave Kleikamp <shaggy@austin.ibm.com>
Signed-off-by: Steve French <sfrench@us.ibm.com>
2005-08-24 14:01:13 -07:00
Steve French
a454434758 CIFS: Reduce CONFIG_CIFS_STATS ifdefs
Make cifs_stats code conditional in the header files to avoid ifdefs in the
main code.

Signed-off-by: Dave Kleikamp <shaggy@austin.ibm.com>
Signed-off-by: Steve French <sfrench@us.ibm.com>
2005-08-24 13:59:35 -07:00
Steve French
6b8edfe0f9 [CIFS] Support for mounting to older servers part 2. Add support for
legacy getattr (lookup).

Signed-off-by: Steve French (sfrench@us.ibm.com)
2005-08-23 20:26:03 -07:00
Steve French
a10faeb2a3 [CIFS] Support for mounting to older, pre-CIFS servers added. This
allows specifying an RFC1001 target "called" name (netbios name of the
server, which can now be pecified as mount option "servernetbiosname"
but will eventually be passed in automatically on retry of host down
error messages caused when server refuses to handle default server
name and can not handle port 445). This is an important step, but
additional testing and fixup is needed to add remaining function needed
for these.

Signed-off-by: Steve French (sfrench@us.ibm.com)
2005-08-22 21:38:31 -07:00
Steve French
b92327fe6b [CIFS] Finish up of case-insensitive dentry handling for cifs. This
will eventually (or should eventually) be common code for jfs, smbfs,
etc. but in the meantime is small enough and necessary when mounting
case insensitive to Windows (nocase).

Signed-off-by: Shaggy (shaggy@austin.ibm.com)
Signed-off-by: Steve French (sfrench@us.ibm.com)
2005-08-22 20:09:43 -07:00
Steve French
a5a2b489ba [CIFS] Make CIFS statistics more accurate and add some stats that were
missing.  Most importantly SMB reads were undercounted.

Signed-off-by: Steve French (sfrench@us.ibm.com)
2005-08-20 21:42:53 -07:00
Steve French
646352319b Merge with /pub/scm/linux/kernel/git/torvalds/linux-2.6.git 2005-08-20 21:40:00 -07:00
Linus Torvalds
cc314eef01 Fix nasty ncpfs symlink handling bug.
This bug could cause oopses and page state corruption, because ncpfs
used the generic page-cache symlink handlign functions.  But those
functions only work if the page cache is guaranteed to be "stable", ie a
page that was installed when the symlink walk was started has to still
be installed in the page cache at the end of the walk.

We could have fixed ncpfs to not use the generic helper routines, but it
is in many ways much cleaner to instead improve on the symlink walking
helper routines so that they don't require that absolute stability.

We do this by allowing "follow_link()" to return a error-pointer as a
cookie, which is fed back to the cleanup "put_link()" routine.  This
also simplifies NFS symlink handling.

Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-08-19 18:02:56 -07:00
Steve French
d3485d37c0 [CIFS] Finish cifs mount option which requests case insensitive path
name matching.

	Signed-off-by:  Steve French (sfrench@us.ibm.com)
2005-08-19 11:04:29 -07:00
Steve French
c46fa8acdc [CIFS] Add mount option for disabling sending byte range lock requests
over the wire (to help the case when applications break with cifs mandatory
lock behavior.  Add part one of mount option for requesting case
insensitive path name matching.

Signed-off-by: Steve French (sfrench@us.ibm.com)
2005-08-18 20:49:57 -07:00
Steve French
8d0d50948b [CIFS] Change Notify support part 1 - add dnotify thread for processing
notify responses.

Signed-off-by: Asser Ferno  <asser@diku.dk>
Signed-off-by: Steve French <sfrench@us.ibm.com>
2005-08-18 09:41:43 -07:00
Steve French
f191401f59 [CIFS] rmmod cifs can oops if done soon after the last cifs unmount
Signed-off-by: Shaggy (shaggy@austin.ibm.com)
Signed-off-by: Steve French (sfrench@us.ibm.com)
2005-08-18 09:37:34 -07:00
Steve French
1982c344f1 [CIFS] Ensure that cifs multiplex ids do not collide.
Signed-off-by: Steve French (sfrench@us.ibm.com)
2005-08-17 12:38:22 -07:00
Steve French
a59c658607 [CIFS] Missing ; from previous fix. Pointed out by Shaggy.
Signed-off-by: Steve French
2005-08-17 12:12:19 -07:00
Steve French
27876d02b3 [PATCH] CIFS: Fix path name conversion for long filenames
Fix path name conversion for long filenames when mapchars mount option
was specified at mount time.

Signed-off-by: Steve French (sfrench@us.ibm.com)
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-08-14 15:27:24 -07:00
Steve French
d024709deb [PATCH] CIFS: Fix missing entries in search results
Fix missing entries in search results when very long file names and more
than 50 (or so) of such long search entries in the directory.

FindNext could send corrupt last byte of resume name when resume key was
a few hundred bytes long file name or longer.

Fixes Samba Bug # 2932

Signed-off-by: Steve French (sfrench@us.ibm.com)
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-08-14 15:27:24 -07:00
Steve French
4a6d87f1db [CIFS] Add missing check for path name allocation failure. Remove four
redundant null pointer checks before cifs_buf_release.

Found by coverity analyzer.

Signed-off-by: Steve French (sfrench@us.ibm.com)
2005-08-13 08:15:54 -07:00
Steve French
ef6724e321 [CIFS] Fix missing entries in search results when very long file names and
more than 50 (or so) of such long search entries in the directory.  FindNext
could send corrupt last byte of resume name when resume key was a few hundred
bytes long file name or longer.

Fixes Samba Bug # 2932

Signed-off-by: Steve French (sfrench@us.ibm.com)
2005-08-02 21:31:05 -07:00
Steve French
eda3c02989 [CIFS] Add compat with SFU (part 2)
Creating FIFOs to non-Unix servers (with cifs mounts for which sfu option
was specified) now works.

Signed-off-by: Steve French (sfrench@us.ibm.com)

Thanks to Martin Koeppe for his assistance
2005-07-21 15:20:28 -07:00
Steve French
f4cfd69cf3 [CIFS] Fix path name conversion for long filenames when mapchars mount
option was specified at mount time.

Signed-off-by: Steve French (sfrench@us.ibm.com)
2005-07-14 18:29:02 -05:00
Steve French
d7245c2ccf [CIFS] Add compat with SFU (part 1)
This should help the case of creating fifos and other special files to
servers which do not support the Unix extensions.

Signed-off-by: Steve French (sfrench@us.ibm.com)

Thanks to Martin Koeppe for his suggestions and good analysis
2005-07-14 18:25:12 -05:00
Steve French
0c0ff09329 [CIFS] Performance improvement, finish up adding CIFSSMBWrite2
Signed-off-by: Steve French (sfrench@us.ibm.com)
2005-06-23 19:31:17 -05:00
Steve French
45abc6ee2b [CIFS] Fix typo in POSIX SetFSInfo call
Signed-off-by: Steve French (sfrench@us.ibm.com)
2005-06-23 13:42:03 -05:00
Steve French
ea0daab4ae Merge with rsync://rsync.kernel.org/pub/scm/linux/kernel/git/sfrench/cifs-2.6.git 2005-06-22 20:26:47 -05:00
Jeremy Allison
ac67055ef2 [CIFS] POSIX extensions, SetFSInfo added
Signed-off-by: Steve French@sfrench@us.ibm.com
Signed-off-by: Jeremy Allison (jra@samba.org)
2005-06-22 17:26:35 -07:00
Steve French
dfb7533b5f [CIFS] Add stats for findfirst, findnext, findclose
Signed-off-by: Steve French (sfrench@us.ibm.com)
2005-06-22 17:13:47 -07:00
Steve French
5893a65711 Merge with rsync://rsync.kernel.org/pub/scm/linux/kernel/git/sfrench/cifs-2.6.git 2005-06-13 13:25:38 -05:00
Steve French
d6e04ae64c [CIFS] CIFS writepage improvements - eliminate double copy
Signed-off-by: Steve French (sfrench@us.ibm.com)
2005-06-13 13:24:43 -05:00
Steve French
3079ca621e [CIFS] Fix cifs update of page cache. Write at correct offset when out of memory
and add_to_page_cache fails.  

Thanks to Shaggy for pointing out the fix.

Signed-off-by: Steve French (sfrench@us.ibm.com)
Signed-off-by: Shaggy (shaggy@us.ibm.com)
2005-06-09 14:44:07 -07:00
Alexey Dobriyan
36358c2142 [CIFS] fs/cifs/netmisc.c: fix sparse warning
Signed-off-by: Steve French <sfrench@us.ibm.com>
Signed-off-by: Alexey Dobriyan <adobriyan@mail.ru>
Signed-off-by: Domen Puncer <domen@coderock.org>
2005-06-02 20:01:16 -05:00
Steve French
d0d2f2df65 [CIFS] Update cifs version number and fix whitespace
Signed-off-by: Steve French (sfrench@us.ibm.com)
2005-06-02 15:12:36 -07:00
Steve French
b1a45695bd [CIFS] fix casts of unicode strings to match function definition
Signed-off-by: Steve French (sfrench@us.ibm.com)
2005-05-17 16:07:23 -05:00
Steve French
b2aeb9d565 [CIFS] Fix oops in cifs_unlink. Caused in some cases when renaming over existing,
newly created, file.

Samba bugzilla: 2697

Signed-off-by: Steve French (sfrench@us.ibm.com)
2005-05-17 13:16:18 -05:00
Steve French
67594feb4b [CIFS] missing break needed to handle < when mount option "mapchars" specified
Signed-off-by: Steve French (sfrench@us.ibm.com)
2005-05-17 13:04:49 -05:00
Adrian Bunk
dfc1e14854 [PATCH] remove BK documentation
There's no longer a reason to document the obsolete BK usage.

Signed-off-by: Adrian Bunk <bunk@stusta.de>
Cc: Jeff Garzik <jgarzik@pobox.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-05-05 16:36:42 -07:00
Steve French
9ea1f8f505 [PATCH] cifs: Update cifs todo list
Signed-off-by: Steve French (sfrench@us.ibm.com)
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-04-30 11:10:58 -07:00
Steve French
6857547671 [PATCH] cifs: append \* properly on ASCII servers
For older servers which do not support Unicode

Signed-off-by: Steve French (sfrench@us.ibm.com)
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-04-30 11:10:57 -07:00
Steve French
0cb766ae62 [PATCH] cifs: Do not sleep interruptible after socket connect failure
.. since it can be due to pending kill.

Update readme information to better describe cifs umount

Signed-off-by: Steve French (sfrench@us.ibm.com)
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-04-28 22:41:11 -07:00
Steve French
31ca3bc3c5 [PATCH] cifs: Do not init smb requests or block when sending requests
if cifsd thread is no longer running to demultixplex responses.

Do not send FindClose request when FindFirst failed without reaching end
of search. 

Signed-off-by: Steve French (sfrench@us.ibm.com)
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-04-28 22:41:11 -07:00
Steve French
57337e42f1 [PATCH] cifs: handle termination of cifs oplockd kernel thread
Signed-off-by: Steve French (sfrench@us.ibm.com)
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-04-28 22:41:10 -07:00
Steve French
11aa0149d0 [PATCH] cifs: Fix mapping of EMLINK case
Signed-off-by: Steve French (sfrench@us.ibm.com)
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-04-28 22:41:10 -07:00
Steve French
cd63499cbe [PATCH] cifs: Handle case of multiple trans2 responses for one SMB request (part 2 of 2)
Signed-off-by: Steve French (sfrench@us.ibm.com)
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-04-28 22:41:10 -07:00
Steve French
275cde1a1f [PATCH] cifs: cleanup various long lines
Signed-off-by: Steve French (sfrench@us.ibm.com)
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-04-28 22:41:10 -07:00
Steve French
e4eb295d38 [PATCH] cifs: Handle multiple response transact2 part 1 of 2
Signed-off-by: Steve French (sfrench@us.ibm.com)
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-04-28 22:41:09 -07:00
Steve French
46810cbf3d [PATCH] cifs: Ease memory pressure, do not use large buffers in byte range lock requests.
Signed-off-by: Steve French (sfrench@us.ibm.com)
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-04-28 22:41:09 -07:00
Steve French
79944bf713 [PATCH] cifs: missing semicolon from previous fix
Signed-off-by: Steve French (sfrench@us.ibm.com)
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-04-28 22:41:09 -07:00
Steve French
67010fbc6f [PATCH] cifs: Better handle errors on second socket recv message call
Signed-off-by: Steve French (sfrench@us.ibm.com)
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-04-28 22:41:09 -07:00
Steve French
09d1db5c61 [PATCH] cifs: improve check for search entry going beyond end of SMB transact
Signed-off-by: Steve French (sfrench@us.ibm.com)
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-04-28 22:41:08 -07:00
Steve French
966ca92347 [PATCH] cifs: Fix caching problem
pointed out by Dave Stahl and Vince Negri in which cifs can update the
last modify time on a server modified file without invalidating the
local cached data due to an intervening readdir. 

Signed-off-by: Steve French (sfrench@us.ibm.com)
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-04-28 22:41:08 -07:00
Steve French
433dc24f24 [PATCH] cifs: remove cifs_kcalloc and check for NULL return on kcalloc in session initialization
Suggested by: Adrian Bunk and Dave Miller

Signed-off-by: Steve French (sfrench@us.ibm.com)
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-04-28 22:41:08 -07:00
Steve French
099a58f681 [PATCH] cifs: Missing initialization for largeBuf flag left out of previous changeset
Signed-off-by: Steve French (sfrench@us.ibm.com)
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-04-28 22:41:07 -07:00
Steve French
b8643e1b52 [PATCH] cifs: Do not use large smb buffers in response path
unless response is larger than 256 bytes.  This cuts more than 1/3 of
the large memory allocations that cifs does and should be a huge help to
memory pressure under stress. 

Signed-off-by: Steve French (sfrench@us.ibm.com)
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-04-28 22:41:07 -07:00
Steve French
c81156dd21 [PATCH] cifs: cleanup of ifdefs usage so it is more consistent
And fix to not needlessly send new POSIX QFSInfo when server does not
explicitly claim support for the new protocol extensions. 

Signed-off-by: Steve French (sfrench@us.ibm.com)
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-04-28 22:41:07 -07:00
Steve French
f28ac91b05 [PATCH] cifs: CIFS ioctl needed by umount.cifs utility
Signed-off-by: Steve French (sfrench@us.ibm.com)
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-04-28 22:41:07 -07:00
Steve French
848f3fce45 [PATCH] cifs: Do not interpret oplock break responses as responses to an unrelated command
.. even if the multiplex ids match.

Signed-off-by: Steve French (sfrench@us.ibm.com)
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-04-28 22:41:07 -07:00
Steve French
d0724714fd [PATCH] cifs: Fix PPC64 compile error
.. and do not double endian convert the special characters whem mounted
with mapchars mount parm. 

Signed-off-by: Steve French (sfrench@us.ibm.com)
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-04-28 22:41:06 -07:00
Steve French
737b758c96 [PATCH] cifs: character mapping of special characters (part 3 of 3)
Signed-off-by: Steve French (sfrench@us.ibm.com)
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-04-28 22:41:06 -07:00
Steve French
6c91d362f1 [PATCH] cifs: finish up of special character mapping capable unicode conversion routine part 2 of 3
Signed-off-by: Steve French (sfrench@us.ibm.com)
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-04-28 22:41:06 -07:00
Steve French
d14537f103 [PATCH] cifs: remove a few redundant null pointer checks, and cleanup misc source formatting
Mostly suggested by Jesper Juhl

Signed-off-by: Steve French (sfrench@us.ibm.com)
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-04-28 22:41:05 -07:00
Steve French
6a0b48245a [PATCH] cifs: Add new mount parm mapchars
For handling seven special characters that shells use for filenames.

This first parts implements conversions from Unicode. 

Signed-off-by: Steve French
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-04-28 22:41:05 -07:00
Steve French
cbe0476fa6 [PATCH] cifs: fix rare oops in cifs_close
Protect access to cifs file list in cifs_close path

Signed-off-by: Steve French (sfrench@us.ibm.com)
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-04-28 22:41:05 -07:00
Steve French
ad009ac965 [PATCH] cifs: Fix multiuser packet signing to use the right sequence number and mac session key
Signed-off-by: Steve French (sfrench@us.ibm.com)
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-04-28 22:41:05 -07:00
Steve French
c67593a031 [PATCH] cifs: Enable ioctl support in POSIX extensions to handle lsattr
remove sparse warnings, unnecessary pad in QueryFileInfo and redundant
function define.

Signed-off-by: Steve French (sfrench@us.ibm.com)
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-04-28 22:41:04 -07:00
Steve French
75cf6bdc52 [PATCH] cifs: Gracefully turn off serverino (when serverino is enabled on mount)
Old servers such as NT4 do not support this level of FindFirst (and
retry with a lower infolevel)

Signed-off-by: Steve French (sfrench@us.ibm.com)
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-04-28 22:41:04 -07:00
Steve French
f654bac222 [PATCH] cifs: add support for chattr/lsattr in new CIFS POSIX extensions
Signed-off-by: Steve French (sfrench@us.ibm.com)
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-04-28 22:41:04 -07:00
Steve French
1da0c78b32 [PATCH] cifs: Only send POSIX ACL calls to server if server claims to support that capability bit
Signed-off-by: Steve French (sfrench@us.ibm.com)
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-04-28 22:41:04 -07:00
Linus Torvalds
1da177e4c3 Linux-2.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!
2005-04-16 15:20:36 -07:00