diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2011-11-04 08:07:58 +0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2011-11-04 08:07:58 +0400 |
commit | 1a67a573b8d9f02211f36fbab50f6265dc49384a (patch) | |
tree | 8435c615c4afbbc1eb4e80ba7185778a00147929 /fs/cifs/file.c | |
parent | 6dbbd92522a13bcd5003829cbed30bc38a3d0362 (diff) | |
parent | 9ef5992e442b2b0bf6364bfcc5574e983a983159 (diff) | |
download | linux-1a67a573b8d9f02211f36fbab50f6265dc49384a.tar.xz |
Merge git://git.samba.org/sfrench/cifs-2.6
* git://git.samba.org/sfrench/cifs-2.6:
cifs: Assume passwords are encoded according to iocharset (try #2)
CIFS: Fix the VFS brlock cache usage in posix locking case
[CIFS] Update cifs version to 1.76
CIFS: Remove extra mutex_unlock in cifs_lock_add_if
Diffstat (limited to 'fs/cifs/file.c')
-rw-r--r-- | fs/cifs/file.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/fs/cifs/file.c b/fs/cifs/file.c index ea096ce5d4f7..c1f063cd1b0c 100644 --- a/fs/cifs/file.c +++ b/fs/cifs/file.c @@ -778,7 +778,6 @@ try_again: else { mutex_lock(&cinode->lock_mutex); list_del_init(&lock->blist); - mutex_unlock(&cinode->lock_mutex); } } @@ -794,6 +793,9 @@ cifs_posix_lock_test(struct file *file, struct file_lock *flock) struct cifsInodeInfo *cinode = CIFS_I(file->f_path.dentry->d_inode); unsigned char saved_type = flock->fl_type; + if ((flock->fl_flags & FL_POSIX) == 0) + return 1; + mutex_lock(&cinode->lock_mutex); posix_test_lock(file, flock); @@ -810,12 +812,15 @@ static int cifs_posix_lock_set(struct file *file, struct file_lock *flock) { struct cifsInodeInfo *cinode = CIFS_I(file->f_path.dentry->d_inode); - int rc; + int rc = 1; + + if ((flock->fl_flags & FL_POSIX) == 0) + return rc; mutex_lock(&cinode->lock_mutex); if (!cinode->can_cache_brlcks) { mutex_unlock(&cinode->lock_mutex); - return 1; + return rc; } rc = posix_lock_file_wait(file, flock); mutex_unlock(&cinode->lock_mutex); |