summaryrefslogtreecommitdiffstats
path: root/fs/cifs/cifsfs.h
Commit message (Collapse)AuthorAgeFilesLines
* update cifs version to 1.75Steve French2011-08-181-1/+1
| | | | Signed-off-by: Steve French <sfrench@us.ibm.com>
* cifs: simplify refcounting for oplock breaksJeff Layton2011-07-311-4/+0
| | | | | | | | | | | | | | | | | Currently, we take a sb->s_active reference and a cifsFileInfo reference when an oplock break workqueue job is queued. This is unnecessary and more complicated than it needs to be. Also as Al points out, deactivate_super has non-trivial locking implications so it's best to avoid that if we can. Instead, just cancel any pending oplock breaks for this filehandle synchronously in cifsFileInfo_put after taking it off the lists. That should ensure that this job doesn't outlive the structures it depends on. Reported-by: Al Viro <viro@ZenIV.linux.org.uk> Signed-off-by: Jeff Layton <jlayton@redhat.com> Signed-off-by: Steve French <sfrench@us.ibm.com>
* fs: push i_mutex and filemap_write_and_wait down into ->fsync() handlersJosef Bacik2011-07-201-2/+2
| | | | | | | | | | | | | | | Btrfs needs to be able to control how filemap_write_and_wait_range() is called in fsync to make it less of a painful operation, so push down taking i_mutex and the calling of filemap_write_and_wait() down into the ->fsync() handlers. Some file systems can drop taking the i_mutex altogether it seems, like ext3 and ocfs2. For correctness sake I just pushed everything down in all cases to make sure that we keep the current behavior the same for everybody, and then each individual fs maintainer can make up their mind about what to do from there. Thanks, Acked-by: Jan Kara <jack@suse.cz> Signed-off-by: Josef Bacik <josef@redhat.com> Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
* [CIFS] update cifs to version 1.74Steve French2011-07-121-1/+1
| | | | Signed-off-by: Steve French <sfrench@us.ibm.com>
* [CIFS] update cifs version to 1.73Steve French2011-06-141-1/+1
| | | | Signed-off-by: Steve French <sfrench@us.ibm.com>
* [CIFS] Update cifs to version 1.72Steve French2011-05-191-1/+1
| | | | Signed-off-by: Steve French <sfrench@us.ibm.com>
* CIFS: Simplify invalidate part (try #5)Pavel Shilovsky2011-05-191-1/+3
| | | | | | | | | Simplify many places when we call cifs_revalidate/invalidate to make it do what it exactly needs. Reviewed-by: Jeff Layton <jlayton@samba.org> Signed-off-by: Pavel Shilovsky <piastry@etersoft.ru> Signed-off-by: Steve French <sfrench@us.ibm.com>
* CIFS: directio read/write cleanupsPavel Shilovsky2011-05-191-4/+4
| | | | | | | | | | Recently introduced strictcache mode brought a new code that can be efficiently used by directio part. That's let us add vectored operations and break unnecessary cifs_user_read and cifs_user_write. Signed-off-by: Pavel Shilovsky <piastry@etersoft.ru> Reviewed-by: Jeff Layton <jlayton@redhat.com> Signed-off-by: Steve French <sfrench@us.ibm.com>
* cifs: cleanup: Rename and remove config flagsShirish Pargaonkar2011-05-191-2/+2
| | | | | | | | | Remove config flag CIFS_EXPERIMENTAL. Do export operations under new config flag CIFS_NFSD_EXPORT Signed-off-by: Shirish Pargaonkar <shirishpargaonkar@gmail.com> Reviewed-by: Jeff Layton <jlayton@redhat.com> Signed-off-by: Steve French <sfrench@us.ibm.com>
* cifs: Remove unused inode number while fetching root inodeShirish Pargaonkar2011-05-191-1/+1
| | | | | | | ino is unused in function cifs_root_iget(). Signed-off-by: Shirish Pargaonkar <shirishpargaonkar@gmail.com> Signed-off-by: Steve French <sfrench@us.ibm.com>
* [CIFS] update cifs versionSteve French2011-02-211-1/+1
| | | | | | Update version to 1.71 so we can more easily spot modules with the last two fixes Signed-off-by: Steve French <sfrench@us.ibm.com>
* [CIFS] Update cifs minor versionSteve French2011-01-311-1/+1
| | | | Signed-off-by: Steve French <sfrench@us.ibm.com>
* CIFS: Implement cifs_strict_writev (try #4)Pavel Shilovsky2011-01-251-1/+3
| | | | | | | | | | | If we don't have Exclusive oplock we write a data to the server. Also set invalidate_mapping flag on the inode if we wrote something to the server. Add cifs_iovec_write to let the client write iovec buffers through CIFSSMBWrite2. Signed-off-by: Pavel Shilovsky <piastryyy@gmail.com> Reviewed-by: Jeff Layton <jlayton@redhat.com> Signed-off-by: Steve French <sfrench@us.ibm.com>
* CIFS: Implement cifs_strict_readv (try #4)Pavel Shilovsky2011-01-201-1/+3
| | | | | | | | | | Read from the cache if we have at least Level II oplock - otherwise read from the server. Add cifs_user_readv to let the client read into iovec buffers. Reviewed-by: Jeff Layton <jlayton@redhat.com> Signed-off-by: Pavel Shilovsky <piastryyy@gmail.com> Signed-off-by: Steve French <sfrench@us.ibm.com>
* CIFS: Implement cifs_file_strict_mmap (try #2)Pavel Shilovsky2011-01-201-0/+1
| | | | | | | | Invalidate inode mapping if we don't have at least Level II oplock. Reviewed-by: Jeff Layton <jlayton@redhat.com> Signed-off-by: Pavel Shilovsky <piastryyy@gmail.com> Signed-off-by: Steve French <sfrench@us.ibm.com>
* CIFS: Implement cifs_strict_fsyncPavel Shilovsky2011-01-201-2/+6
| | | | | | | | | | | Invalidate inode mapping if we don't have at least Level II oplock in cifs_strict_fsync. Also remove filemap_write_and_wait call from cifs_fsync because it is previously called from vfs_fsync_range. Add file operations' structures for strict cache mode. Reviewed-by: Jeff Layton <jlayton@redhat.com> Signed-off-by: Pavel Shilovsky <piastryyy@gmail.com> Signed-off-by: Steve French <sfrench@us.ibm.com>
* [CIFS] Update cifs version numberSteve French2011-01-191-1/+1
| | | | Signed-off-by: Steve French <sfrench@us.ibm.com>
* CIFS: Use d_automount() rather than abusing follow_link()David Howells2011-01-151-0/+6
| | | | | | | | | | | Make CIFS use the new d_automount() dentry operation rather than abusing follow_link() on directories. [NOTE: THIS IS UNTESTED!] Signed-off-by: David Howells <dhowells@redhat.com> Cc: Steve French <sfrench@samba.org> Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
* [CIFS] Fix checkpatch warnings and bump cifs version numberSteve French2010-10-251-1/+1
| | | | Signed-off-by: Steve French <sfrench@us.ibm.com>
* [CIFS] Fix minor checkpatch warning and update cifs versionSteve French2010-10-181-1/+1
| | | | Signed-off-by: Steve French <sfrench@us.ibm.com>
* cifs: don't use vfsmount to pin superblock for oplock breaksJeff Layton2010-10-121-4/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | Filesystems aren't really supposed to do anything with a vfsmount. It's considered a layering violation since vfsmounts are entirely managed at the VFS layer. CIFS currently keeps an active reference to a vfsmount in order to prevent the superblock vanishing before an oplock break has completed. What we really want to do instead is to keep sb->s_active high until the oplock break has completed. This patch borrows the scheme that NFS uses for handling sillyrenames. An atomic_t is added to the cifs_sb_info. When it transitions from 0 to 1, an extra reference to the superblock is taken (by bumping the s_active value). When it transitions from 1 to 0, that reference is dropped and a the superblock teardown may proceed if there are no more references to it. Also, the vfsmount pointer is removed from cifsFileInfo and from cifs_new_fileinfo, and some bogus forward declarations are removed from cifsfs.h. Signed-off-by: Jeff Layton <jlayton@redhat.com> Reviewed-by: Suresh Jayaraman <sjayaraman@suse.de> Acked-by: Dave Kleikamp <shaggy@linux.vnet.ibm.com> Signed-off-by: Steve French <sfrench@us.ibm.com>
* [CIFS] Various small checkpatch cleanupsSteve French2010-10-071-1/+1
| | | | Signed-off-by: Steve French <sfrench@us.ibm.com>
* [CIFS] Fix build break when CONFIG_CIFS_FSCACHE disabledSteve French2010-08-021-1/+1
| | | | | CC: Suresh Jayaraman <sjayaraman@suse.de> Signed-off-by: Steve French <sfrench@us.ibm.com>
* drop unused dentry argument to ->fsyncChristoph Hellwig2010-05-271-1/+1
| | | | | Signed-off-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
* [CIFS] Fix lease break for writesSteve French2010-04-271-1/+1
| | | | | | | | On lease break we were breaking to readonly leases always even if write requested. Also removed experimental ifdef around setlease code Signed-off-by: Steve French <sfrench@us.ibm.com>
* [CIFS] Cleanup various minor breakage in previous cFYI cleanupSteve French2010-04-211-1/+1
| | | | Signed-off-by: Steve French <sfrench@us.ibm.com>
* cifs: add cifs_revalidate_fileJeff Layton2010-03-091-0/+1
| | | | | | | | | | ...to allow updating inode attributes on an existing inode by filehandle. Change mmap and llseek codepaths to use that instead of cifs_revalidate_dentry since they have a filehandle readily available. Signed-off-by: Jeff Layton <jlayton@redhat.com> Signed-off-by: Steve French <sfrench@us.ibm.com>
* cifs: overhaul cifs_revalidate and rename to cifs_revalidate_dentryJeff Layton2010-03-061-1/+1
| | | | | | | | | | | | | | | | | | | | | | | cifs_revalidate is renamed to cifs_revalidate_dentry as a later patch will add a by-filehandle variant. Add a new "invalid_mapping" flag to the cifsInodeInfo that indicates that the pagecache is considered invalid. Add a new routine to check inode attributes whenever they're updated and set that flag if the inode has changed on the server. cifs_revalidate_dentry is then changed to just update the attrcache if needed and then to zap the pagecache if it's not valid. There are some other behavior changes in here as well. Open files are now allowed to have their caches invalidated. I see no reason why we'd want to keep stale data around just because a file is open. Also, cifs_revalidate_cache uses the server_eof for revalidating the file size since that should more closely match the size of the file on the server. Signed-off-by: Jeff Layton <jlayton@redhat.com> Signed-off-by: Steve French <sfrench@us.ibm.com>
* [CIFS] Add support for TCP_NODELAYSteve French2010-01-011-1/+1
| | | | | | | mount option sockopt=TCP_NODELAY helpful for faster networks boosting performance. Kernel bugzilla bug number 14032. Signed-off-by: Steve French <sfrench@us.ibm.com>
* const: mark remaining inode_operations as constAlexey Dobriyan2009-09-221-1/+1
| | | | | | 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 checkpatch warningsSteve French2009-09-011-1/+1
| | | | | | Also update version number to 1.61 Signed-off-by: Steve French <sfrench@us.ibm.com>
* [CIFS] update cifs version numberSteve French2009-07-091-1/+1
| | | | Signed-off-by: Steve French <sfrench@us.ibm.com>
* cifs: add new cifs_iget function and convert unix codepath to use itJeff Layton2009-07-011-0/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | cifs: add new cifs_iget function and convert unix codepath to use it In order to unify some codepaths, introduce a common cifs_fattr struct for storing inode attributes. The different codepaths (unix, legacy, normal, etc...) can fill out this struct with inode info. It can then be passed as an arg to a common set of routines to get and update inodes. Add a new cifs_iget function that uses iget5_locked to identify inodes. This will compare inodes based on the uniqueid value in a cifs_fattr struct. Rather than filling out an already-created inode, have cifs_get_inode_info_unix instead fill out cifs_fattr and hand that off to cifs_iget. cifs_iget can then properly look for hardlinked inodes. On the readdir side, add a new cifs_readdir_lookup function that spawns populated dentries. Redefine FILE_UNIX_INFO so that it's basically a FILE_UNIX_BASIC_INFO that has a few fields wrapped around it. This allows us to more easily use the same function for filling out the fattr as the non-readdir codepath. With this, we should then have proper hardlink detection and can eventually get rid of some nasty CIFS-specific hacks for handing them. Signed-off-by: Jeff Layton <jlayton@redhat.com> Reviewed-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Steve French <sfrench@us.ibm.com>
* [CIFS] Update readme to indicate change to default mount (serverino)Steve French2009-05-281-1/+1
| | | | Signed-off-by: Steve French <sfrench@us.ibm.com>
* cifs: rename cifs_iget to cifs_root_igetJeff Layton2009-05-281-1/+1
| | | | | | | | | The current cifs_iget isn't suitable for anything but the root inode. Rename it with a more appropriate name. Signed-off-by: Jeff Layton <jlayton@redhat.com> Reviewed-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Steve French <sfrench@us.ibm.com>
* [CIFS] Make cifs_unlink consistent in checks for null inodeSteve French2009-04-201-1/+1
| | | | Signed-off-by: Steve French <sfrench@us.ibm.com>
* constify dentry_operations: CIFSAl Viro2009-03-271-2/+2
| | | | Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
* [CIFS] Fix multiuser mounts so server does not invalidate earlier security ↵Steve French2009-02-211-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | contexts When two different users mount the same Windows 2003 Server share using CIFS, the first session mounted can be invalidated. Some servers invalidate the first smb session when a second similar user (e.g. two users who get mapped by server to "guest") authenticates an smb session from the same client. By making sure that we set the 2nd and subsequent vc numbers to nonzero values, this ensures that we will not have this problem. Fixes Samba bug 6004, problem description follows: How to reproduce: - configure an "open share" (full permissions to Guest user) on Windows 2003 Server (I couldn't reproduce the problem with Samba server or Windows older than 2003) - mount the share twice with different users who will be authenticated as guest. noacl,noperm,user=john,dir_mode=0700,domain=DOMAIN,rw noacl,noperm,user=jeff,dir_mode=0700,domain=DOMAIN,rw Result: - just the mount point mounted last is accessible: Signed-off-by: Steve French <sfrench@us.ibm.com>
* kill ->dir_notify()Al Viro2008-12-311-1/+0
| | | | | | | | | | | Remove the hopelessly misguided ->dir_notify(). The only instance (cifs) has been broken by design from the very beginning; the objects it creates are never destroyed, keep references to struct file they can outlive, nothing that could possibly evict them exists on close(2) path *and* no locking whatsoever is done to prevent races with close(), should the previous, er, deficiencies someday be dealt with. Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
* [CIFS] fix typoSteve French2008-12-261-1/+1
| | | | Signed-off-by: Steve French <sfrench@us.ibm.com>
* [CIFS] add mount option to send mandatory rather than advisory locksSteve French2008-12-261-1/+1
| | | | | | | | | | | | | | | | | | | | | | Some applications/subsystems require mandatory byte range locks (as is used for Windows/DOS/OS2 etc). Sending advisory (posix style) byte range lock requests (instead of mandatory byte range locks) can lead to problems for these applications (which expect that other clients be prevented from writing to portions of the file which they have locked and are updating). This mount option allows mounting cifs with the new mount option "forcemand" (or "forcemandatorylock") in order to have the cifs client use mandatory byte range locks (ie SMB/CIFS/Windows/NTFS style locks) rather than posix byte range lock requests, even if the server would support posix byte range lock requests. This has no effect if the server does not support the CIFS Unix Extensions (since posix style locks require support for the CIFS Unix Extensions), but for mounts to Samba servers this can be helpful for Wine and applications that require mandatory byte range locks. Acked-by: Jeff Layton <jlayton@redhat.com> CC: Alexander Bokovoy <ab@samba.org> Signed-off-by: Steve French <sfrench@us.ibm.com>
* [CIFS] undo changes in cifs_rename_pending_delete if it errors outSteve French2008-10-201-1/+1
| | | | | | | | | | The cifs_rename_pending_delete process involves multiple steps. If it fails and we're going to return error, we don't want to leave things in a half-finished state. Add code to the function to undo changes if a call fails. Signed-off-by: Jeff Layton <jlayton@redhat.com> Signed-off-by: Steve French <sfrench@us.ibm.com>
* cifs: clean up variables in cifs_unlinkJeff Layton2008-09-161-1/+1
| | | | | | | | | | | Change parameters to cifs_unlink to match the ones used in the generic VFS. Add some local variables to cut down on the amount of struct dereferencing that needs to be done, and eliminate some unneeded NULL pointer checks on the parent directory inode. Finally, rename pTcon to "tcon" to more closely match standard kernel coding style. Signed-off-by: Jeff Layton <jlayton@redhat.com> Signed-off-by: Steve French <sfrench@us.ibm.com>
* [CIFS] remove level of indentation from decode_negTokenInitJeff Layton2008-07-311-1/+1
| | | | | | | | | Most of this function takes place inside of an unnecessary "else" clause. The other 2 cases both return 0, so we can remove some indentation here. Signed-off-by: Jeff Layton <jlayton@redhat.com> Signed-off-by: Steve French <sfrench@us.ibm.com>
* [CIFS] BKL-removal: convert CIFS over to unlocked_ioctlSteve French2008-05-151-2/+1
| | | | | | | | | cifs_ioctl doesn't seem to need the BKL for anything, so convert it over to use unlocked_ioctl. Signed-off-by: Andi Kleen <andi@firstfloor.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Steve French <sfrench@us.ibm.com>
* [CIFS] convert usage of implicit booleans to boolSteve French2008-04-291-8/+0
| | | | | Signed-off-by: Joe Perches <joe@perches.com> Signed-off-by: Steve French <sfrench@us.ibm.com>
* [CIFS] Update cifs version numberSteve French2008-04-251-1/+1
| | | | Signed-off-by: Steve French <sfrench@us.ibm.com>
* [CIFS] make cifs_dfs_automount_list_staticSteve French2008-04-161-2/+0
| | | | | | | This patch makes the needlessly global cifs_dfs_automount_list static. Signed-off-by: Adrian Bunk <bunk@kernel.org> Signed-off-by: Steve French <sfrench@us.ibm.com>
* iget: stop CIFS from using iget() and read_inode()David Howells2008-02-071-0/+1
| | | | | | | | | | | | | | | | | | | Stop the CIFS filesystem from using iget() and read_inode(). Replace cifs_read_inode() with cifs_iget(), and call that instead of iget(). cifs_iget() then uses iget_locked() directly and returns a proper error code instead of an inode in the event of an error. cifs_read_super() now returns any error incurred when getting the root inode instead of ENOMEM. cifs_iget() needs examining. The comment "can not call macro FreeXid here since in a void func" is no longer true. Signed-off-by: David Howells <dhowells@redhat.com> Cc: Steven French <sfrench@us.ibm.com> Acked-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
* [CIFS] DFS support: provide shrinkable mountsIgor Mammedov2008-01-251-0/+4
| | | | | Signed-off-by: Igor Mammedov <niallain@gmail.com> Signed-off-by: Steve French <sfrench@us.ibm.com>
OpenPOWER on IntegriCloud