Whamcloud - gitweb
LU-3385 llite: missing last bit in ll_have_md_lock
authorwang di <di.wang@intel.com>
Thu, 23 May 2013 07:00:09 +0000 (00:00 -0700)
committerOleg Drokin <oleg.drokin@intel.com>
Fri, 31 May 2013 16:25:11 +0000 (12:25 -0400)
Missing the last bit during INODELOCK check in ll_have_md_lock.

Signed-off-by: wang di <di.wang@intel.com>
Change-Id: I0801554904cab106513b76ace4f1467d14cfdf1a
Reviewed-on: http://review.whamcloud.com/6438
Tested-by: Hudson
Tested-by: Maloo <whamcloud.maloo@gmail.com>
Reviewed-by: Oleg Drokin <oleg.drokin@intel.com>
Reviewed-by: Andreas Dilger <andreas.dilger@intel.com>
lustre/llite/file.c

index a216652..05df5d8 100644 (file)
@@ -2663,11 +2663,11 @@ int ll_have_md_lock(struct inode *inode, __u64 *bits,  ldlm_mode_t l_req_mode)
         CDEBUG(D_INFO, "trying to match res "DFID" mode %s\n", PFID(fid),
                ldlm_lockname[mode]);
 
-        flags = LDLM_FL_BLOCK_GRANTED | LDLM_FL_CBPENDING | LDLM_FL_TEST_LOCK;
-        for (i = 0; i < MDS_INODELOCK_MAXSHIFT && *bits != 0; i++) {
-                policy.l_inodebits.bits = *bits & (1 << i);
-                if (policy.l_inodebits.bits == 0)
-                        continue;
+       flags = LDLM_FL_BLOCK_GRANTED | LDLM_FL_CBPENDING | LDLM_FL_TEST_LOCK;
+       for (i = 0; i <= MDS_INODELOCK_MAXSHIFT && *bits != 0; i++) {
+               policy.l_inodebits.bits = *bits & (1 << i);
+               if (policy.l_inodebits.bits == 0)
+                       continue;
 
                 if (md_lock_match(ll_i2mdexp(inode), flags, fid, LDLM_IBITS,
                                   &policy, mode, &lockh)) {