aboutsummaryrefslogtreecommitdiffstats
path: root/fs/cifs/cifs_debug.c
Commit message (Collapse)AuthorAge
* cifs: allow for different handling of received responseJeff Layton2011-01-20
| | | | | | | | | | | | | | | | | | | | | | In order to incorporate async requests, we need to allow for a more general way to do things on receive, rather than just waking up a process. Turn the task pointer in the mid_q_entry into a callback function and a generic data pointer. When a response comes in, or the socket is reconnected, cifsd can call the callback function in order to wake up the process. The default is to just wake up the current process which should mean no change in behavior for existing code. Also, clean up the locking in cifs_reconnect. There doesn't seem to be any need to hold both the srv_mutex and GlobalMid_Lock when walking the list of mids. Reviewed-by: Suresh Jayaraman <sjayaraman@suse.de> Signed-off-by: Jeff Layton <jlayton@redhat.com> Signed-off-by: Steve French <sfrench@us.ibm.com>
* cifs: clean up accesses to midCountJeff Layton2011-01-19
| | | | | | | | | | | | It's an atomic_t and the code accesses the "counter" field in it directly instead of using atomic_read(). It also is sometimes accessed under a spinlock and sometimes not. Move it out of the spinlock since we don't need belt-and-suspenders for something that's just informational. Reviewed-by: Suresh Jayaraman <sjayaraman@suse.de> Reviewed-by: Pavel Shilovsky <piastryyy@gmail.com> Signed-off-by: Jeff Layton <jlayton@redhat.com> Signed-off-by: Steve French <sfrench@us.ibm.com>
* cifs: show "acl" in DebugData Features when it's compiled inJeff Layton2011-01-09
| | | | | | | | ...and while we're at it, reduce the number of calls into the seq_* functions by prepending spaces to strings. Signed-off-by: Jeff Layton <jlayton@redhat.com> Signed-off-by: Steve French <sfrench@us.ibm.com>
* cifs: convert cifs_tcp_ses_lock from a rwlock to a spinlockSuresh Jayaraman2010-10-21
| | | | | | | | | | | | | | cifs_tcp_ses_lock is a rwlock with protects the cifs_tcp_ses_list, server->smb_ses_list and the ses->tcon_list. It also protects a few ref counters in server, ses and tcon. In most cases the critical section doesn't seem to be large, in a few cases where it is slightly large, there seem to be really no benefit from concurrent access. I briefly considered RCU mechanism but it appears to me that there is no real need. Replace it with a spinlock and get rid of the last rwlock in the cifs code. Signed-off-by: Suresh Jayaraman <sjayaraman@suse.de> Signed-off-by: Steve French <sfrench@us.ibm.com>
* cifs: show features compiled in as part of DebugDataSuresh Jayaraman2010-08-05
| | | | | | | | | | | | | | | | | | | | | | | | | Fixed the nit pointed out by Jeff. From: Suresh Jayaraman <sjayaraman@suse.de> Subject: [PATCH 1/2] cifs: show features compiled in as part of DebugData This patch adds the features that are compiled in to the CIFS debugging data as shown below: $cat /proc/fs/cifs/DebugData Display Internal CIFS Data Structures for Debugging --------------------------------------------------- CIFS Version 1.64 Features: dfs fscache posix spnego xattr Active VFS Requests: 0 ... This patch provides a definitive way to tell what features are currently enabled in the running kernel. This could also help debugging. Signed-off-by: Suresh Jayaraman <sjayaraman@suse.de> Cc: Jeff Layton <jlayton@redhat.com> Signed-off-by: Steve French <sfrench@us.ibm.com>
* cifs: rename "extended_security" to "global_secflags"Jeff Layton2010-04-26
| | | | | | | ...since that more accurately describes what that variable holds. Signed-off-by: Jeff Layton <jlayton@redhat.com> Signed-off-by: Steve French <sfrench@us.ibm.com>
* [CIFS] Neaten cERROR and cFYI macros, reduce text spaceJoe Perches2010-04-20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Neaten cERROR and cFYI macros, reduce text space ~2.5K Convert '__FILE__ ": " fmt' to '"%s: " fmt', __FILE__' to save text space Surround macros with do {} while Add parentheses to macros Make statement expression macro from macro with assign Remove now unnecessary parentheses from cFYI and cERROR uses defconfig with CIFS support old $ size fs/cifs/built-in.o text data bss dec hex filename 156012 1760 148 157920 268e0 fs/cifs/built-in.o defconfig with CIFS support old $ size fs/cifs/built-in.o text data bss dec hex filename 153508 1760 148 155416 25f18 fs/cifs/built-in.o allyesconfig old: $ size fs/cifs/built-in.o text data bss dec hex filename 309138 3864 74824 387826 5eaf2 fs/cifs/built-in.o allyesconfig new $ size fs/cifs/built-in.o text data bss dec hex filename 305655 3864 74824 384343 5dd57 fs/cifs/built-in.o Signed-off-by: Joe Perches <joe@perches.com> Signed-off-by: Steve French <sfrench@us.ibm.com>
* [CIFS] Distinguish posix opens and mkdirs from legacy mkdirs in statsSteve French2009-07-10
| | | | | Acked-by: Jeff Layton <jlayton@redhat.com> Signed-off-by: Steve French <sfrench@us.ibm.com>
* proc 2/2: remove struct proc_dir_entry::ownerAlexey Dobriyan2009-03-30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Setting ->owner as done currently (pde->owner = THIS_MODULE) is racy as correctly noted at bug #12454. Someone can lookup entry with NULL ->owner, thus not pinning enything, and release it later resulting in module refcount underflow. We can keep ->owner and supply it at registration time like ->proc_fops and ->data. But this leaves ->owner as easy-manipulative field (just one C assignment) and somebody will forget to unpin previous/pin current module when switching ->owner. ->proc_fops is declared as "const" which should give some thoughts. ->read_proc/->write_proc were just fixed to not require ->owner for protection. rmmod'ed directories will be empty and return "." and ".." -- no harm. And directories with tricky enough readdir and lookup shouldn't be modular. We definitely don't want such modular code. Removing ->owner will also make PDE smaller. So, let's nuke it. Kudos to Jeff Layton for reminding about this, let's say, oversight. http://bugzilla.kernel.org/show_bug.cgi?id=12454 Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
* [CIFS] Send SMB flush in cifs_fsyncSteve French2009-03-11
| | | | | | | | | | | | | | | In contrast to the now-obsolete smbfs, cifs does not send SMB_COM_FLUSH in response to an explicit fsync(2) to guarantee that all volatile data is written to stable storage on the server side, provided the server honors the request (which, to my knowledge, is true for Windows and Samba with 'strict sync' enabled). This patch modifies the cifs_fsync implementation to restore the fsync-behavior of smbfs by triggering SMB_COM_FLUSH after sending outstanding data on the client side to the server. Signed-off-by: Horst Reiterer <horst.reiterer@gmail.com> Acked-by: Jeff Layton <jlayton@redhat.com> Signed-off-by: Steve French <sfrench@us.ibm.com>
* [CIFS] Fix build breakSteve French2008-11-16
| | | | Signed-off-by: Steve French <sfrench@us.ibm.com>
* cifs: reinstate sharing of tree connectionsJeff Layton2008-11-16
| | | | | | | | | | Use a similar approach to the SMB session sharing. Add a list of tcons attached to each SMB session. Move the refcount to non-atomic. Protect all of the above with the cifs_tcp_ses_lock. Add functions to properly find and put references to the tcons. Signed-off-by: Jeff Layton <jlayton@redhat.com> Signed-off-by: Steve French <sfrench@us.ibm.com>
* cifs: reinstate sharing of SMB sessions sans racesJeff Layton2008-11-14
| | | | | | | | | | | | | | | We do this by abandoning the global list of SMB sessions and instead moving to a per-server list. This entails adding a new list head to the TCP_Server_Info struct. The refcounting for the cifsSesInfo is moved to a non-atomic variable. We have to protect it by a lock anyway, so there's no benefit to making it an atomic. The list and refcount are protected by the global cifs_tcp_ses_lock. The patch also adds a new routines to find and put SMB sessions and that properly take and put references under the lock. Signed-off-by: Jeff Layton <jlayton@redhat.com> Signed-off-by: Steve French <sfrench@us.ibm.com>
* cifs: disable sharing session and tcon and add new TCP sharing codeJeff Layton2008-11-14
| | | | | | | | | | | | | | The code that allows these structs to be shared is extremely racy. Disable the sharing of SMB and tcon structs for now until we can come up with a way to do this that's race free. We want to continue to share TCP sessions, however since they are required for multiuser mounts. For that, implement a new (hopefully race-free) scheme. Add a new global list of TCP sessions, and take care to get a reference to it whenever we're dealing with one. Signed-off-by: Jeff Layton <jlayton@redhat.com> Signed-off-by: Steve French <sfrench@us.ibm.com>
* [CIFS] remove unused list, add new cifs sock list to prepare for ↵Steve French2008-11-13
| | | | | | | | | | | | | | | mount/umount fix Also adds two lines missing from the previous patch (for the need reconnect flag in the /proc/fs/cifs/DebugData handling) The new global_cifs_sock_list is added, and initialized in init_cifs but not used yet. Jeff Layton will be adding code in to use that and to remove the GlobalTcon and GlobalSMBSession lists. CC: Jeff Layton <jlayton@redhat.com> CC: Shirish Pargaonkar <shirishp@us.ibm.com> Signed-off-by: Steve French <sfrench@us.ibm.com>
* [CIFS] list entry can not return nullSteve French2008-08-08
| | | | Signed-off-by: Steve French <sfrench@us.ibm.com>
* [CIFS] Fix warnings from checkpatchShirish Pargaonkar2008-07-24
| | | | Signed-off-by: Steve French <sfrench@us.ibm.com>
* [CIFS] remove checkpatch warningSteve French2008-07-23
| | | | Signed-off-by: Steve French <sfrench@us.ibm.com>
* Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>Alexey Dobriyan2008-07-23
| | | | | | Cc: Steven French <sfrench@us.ibm.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Steve French <sfrench@us.ibm.com>
* proc: remove proc_root_fsAlexey Dobriyan2008-04-29
| | | | | | | | Use creation by full path instead: "fs/foo". Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
* [CIFS] fix build break when proc disabledSteve French2008-02-17
| | | | Signed-off-by: Steve French <sfrench@us.ibm.com>
* [CIFS] clean up some hard to read ifdefsSteve French2008-02-12
| | | | | | | | Christoph had noticed too many ifdefs in the CIFS code making it hard to read. This patch removes about a quarter of them from the C files in cifs by improving a few key ifdefs in the .h files. Signed-off-by: Steve French <sfrench@us.ibm.com>
* [CIFS] reduce checkpatch warningsSteve French2008-02-07
| | | | Signed-off-by: Steve French <sfrench@us.ibm.com>
* [CIFS] Fix cifsd so shuts down when signing fails during mountSteve French2007-10-04
| | | | | | | | | | | | | | | | | | Fixes two problems: 1) we dropped down to negotiating lanman if we did not recognize the mechanism (krb5 e.g.) 2) we did not stop cifsd (thus will fail when doing rmod cifs with slab free errors) when we fail tcon but have a bad session (which is the case in which signing is required but we don't allow signing on the client) It also turns on extended security flag in the header when passing "sec=krb5" on mount command (although kerberos support is not done of course) Acked-by: Jeff Layton <jlayton@redhat.com> CC: Shaggy <shaggy@us.ibm.com> Signed-off-by: Steve French <sfrench@us.ibm.com>
* [CIFS] missing field in debug output from previous fixSteve French2007-09-14
| | | | Signed-off-by: Steve French <sfrench@us.ibm.com>
* [CIFS] Fix potential NULL pointer usage if kzalloc failsSteve French2007-09-14
| | | | | | | Potential problem was noticed by Cyrill Gorcunov CC: Cyrill Gorcunov <gorcunov@gmail.com> Signed-off-by: Steve French <sfrench@us.ibm.com>
* [CIFS] whitespace/formatting fixesSteve French2007-07-12
| | | | | | | | | This should be the last big batch of whitespace/formatting fixes. checkpatch warnings for the cifs directory are down about 90% and many of the remaining ones are harder to remove or make the code harder to read. Signed-off-by: Steve French <sfrench@us.ibm.com>
* [CIFS] Fix sign mount option and sign proc config settingSteve French2007-06-28
| | | | | | | | | We were checking the wrong (old) global variable to determine whether to override server and force signing on the SMB connection. Acked-by: Dave Kleikamp <shaggy@austin.ibm.com> Signed-off-by: Steve French <sfrench@us.ibm.com>
* [CIFS] fix whitespaceSteve French2007-06-24
| | | | | | More whitespace problems found by checkpatch Signed-off-by: Steve French <sfrench@us.ibm.com>
* [CIFS] whitespace cleanup part 2Steve French2007-06-05
| | | | | | | | Various coding style problems found by running the new checkpatch.pl script against fs/cifs. 3 more files fixed up. Signed-off-by: Steve French <sfrench@us.ibm.com>
* [CIFS] cifs sprintf fixSteve French2007-01-21
| | | | | | Cc: <alert7@xfocus.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Steve French <sfrench@us.ibm.com>
* [CIFS] NTLMv2 support part 4Steve French2006-06-05
| | | | Signed-off-by: Steve French <sfrench@us.ibm.com>
* [CIFS] Fix mask so can set new cifs security flags properlySteve French2006-06-04
| | | | Signed-off-by: Steve French <sfrench@us.ibm.com>
* [CIFS] Support for older servers which require plaintext passwordsSteve French2006-06-02
| | | | | | | | disabled by default, but can be enabled via proc for servers which require such support. Also includes support for setting security flags for cifs. See fs/cifs/README Signed-off-by: Steve French <sfrench@us.ibm.com>
* [CIFS] Support for setting up SMB sessions to legacy lanman servers part 2Steve French2006-06-01
|
* [CIFS] Support for setting up SMB sessions to legacy lanman serversSteve French2006-05-31
|
* [CIFS] Avoid extra large buffer allocation (and memcpy) in cifs_readpagesSteve French2005-12-12
| | | | Signed-off-by: Steve French <sfrench@us.ibm.com>
* [CIFS] Display large/small total buffer allocations in /proc/fs/cifs/StatsSteve French2005-12-03
| | | | | | when CONFIG_CIFS_STATS2 is on (helps in debugging performance) Signed-off-by: Steve French <sfrench@us.ibm.com>
* [CIFS] Add extended stats (STATS2) for total buffer allocations forSteve French2005-12-03
| | | | | | better performance debugging. Signed-off-by: Steve French <sfrench@us.ibm.com>
* [CIFS] Add null malloc response check in notify experimental codeSteve French2005-10-11
| | | | Signed-off-by: Steve French (sfrench@us.ibm.com)
* [CIFS] CIFS Stats improvementsSteve French2005-10-11
| | | | | | 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>
* [CIFS] Fix rsize calculation so that large readx flag is checked.Steve French2005-10-10
| | | | Signed-off-by: Steve French (sfrench@us.ibm.com)
* [CIFS] Reduce CIFS tcp congestion timeout (it was too long) and backoffSteve French2005-10-10
| | | | | | | ever longer amounts (up to 15 seconds). This improves performance especially when using large wsize. Signed-off-by: Steve French (sfrench@us.ibm.com)
* [CIFS] /proc/fs/cifs debug code cleanup and new stats2Steve French2005-10-07
| | | | | | | 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>
* [CIFS] Make CIFS statistics more accurate and add some stats that wereSteve French2005-08-21
| | | | | | missing. Most importantly SMB reads were undercounted. Signed-off-by: Steve French (sfrench@us.ibm.com)
* [CIFS] Performance improvement, finish up adding CIFSSMBWrite2Steve French2005-06-23
| | | | Signed-off-by: Steve French (sfrench@us.ibm.com)
* [PATCH] cifs: remove cifs_kcalloc and check for NULL return on kcalloc in ↵Steve French2005-04-29
| | | | | | | | | 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>
* [PATCH] cifs: Do not use large smb buffers in response pathSteve French2005-04-29
| | | | | | | | | 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>
* [PATCH] cifs: Do not interpret oplock break responses as responses to an ↵Steve French2005-04-29
| | | | | | | | | 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>
* [PATCH] cifs: finish up of special character mapping capable unicode ↵Steve French2005-04-29
| | | | | | | conversion routine part 2 of 3 Signed-off-by: Steve French (sfrench@us.ibm.com) Signed-off-by: Linus Torvalds <torvalds@osdl.org>