]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - fs/cifs/file.c
Merge git://github.com/rustyrussell/linux
[karo-tx-linux.git] / fs / cifs / file.c
index ea096ce5d4f7e86b94df26ac319cca8769c38595..c1f063cd1b0cf2cd5d8d957a4a65f75b61a4c42a 100644 (file)
@@ -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);