]> git.kernelconcepts.de Git - karo-tx-linux.git/commitdiff
staging/lustre/vvp: release mmap_sem in error case
authorPatrick Farrell <paf@cray.com>
Mon, 23 Jun 2014 01:32:20 +0000 (21:32 -0400)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 27 Jun 2014 00:45:06 +0000 (20:45 -0400)
The mmap_sem is downed in vvp_mmap_locks, but in case of
error from cl_io_lock_alloc_add, it is not upped.

Credit to Paul Casella at Cray for finding this.

Signed-off-by: Patrick Farrell <paf@cray.com>
Reviewed-on: http://review.whamcloud.com/10741
Intel-bug-id: https://jira.hpdd.intel.com/browse/LU-5221
Reviewed-by: Andreas Dilger <andreas.dilger@intel.com>
Signed-off-by: Oleg Drokin <oleg.drokin@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/lustre/lustre/llite/vvp_io.c

index 0e0b404cb5e6cc3b33dc8b736675485a617cdd55..04230edc17787eff445b5dacc7da8ad3f8b6bf9a 100644 (file)
@@ -269,8 +269,10 @@ static int vvp_mmap_locks(const struct lu_env *env,
                               descr->cld_mode, descr->cld_start,
                               descr->cld_end);
 
-                       if (result < 0)
+                       if (result < 0) {
+                               up_read(&mm->mmap_sem);
                                return result;
+                       }
 
                        if (vma->vm_end - addr >= count)
                                break;