Whamcloud - gitweb
LU-4591 lov: cancel ungranted sub lock 24/9524/2
authorJinshan Xiong <jinshan.xiong@intel.com>
Thu, 6 Mar 2014 06:45:47 +0000 (22:45 -0800)
committerOleg Drokin <oleg.drokin@intel.com>
Wed, 12 Mar 2014 15:07:40 +0000 (15:07 +0000)
When the top lock is canceled due to error, we should cancel
ungranted sub lock otherwise the sublock state is undefined.

Signed-off-by: Jinshan Xiong <jinshan.xiong@intel.com>
Change-Id: I5c1df5220ce77ff434463d6443135c625e79ea04
Reviewed-on: http://review.whamcloud.com/9524
Tested-by: Jenkins
Tested-by: Maloo <hpdd-maloo@intel.com>
Reviewed-by: John L. Hammond <john.hammond@intel.com>
Reviewed-by: Andreas Dilger <andreas.dilger@intel.com>
Reviewed-by: Oleg Drokin <oleg.drokin@intel.com>
lustre/lov/lov_lock.c

index 00d372d..916a415 100644 (file)
@@ -689,6 +689,7 @@ static int lov_lock_unuse(const struct lu_env *env,
                                lov_sublock_release(env, lck, i, 0, 0);
                                break;
                        default:
+                               cl_lock_cancel(subenv->lse_env, sublock);
                                lov_sublock_release(env, lck, i, 1, 0);
                                break;
                        }
@@ -745,6 +746,7 @@ static void lov_lock_cancel(const struct lu_env *env,
                                 lov_sublock_release(env, lck, i, 0, 0);
                                 break;
                         default:
+                               cl_lock_cancel(subenv->lse_env, sublock);
                                 lov_sublock_release(env, lck, i, 1, 0);
                                 break;
                         }