From ab824409ac5b3f8930f508ec43c35ed4f89842f0 Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Tue, 14 Jul 2009 12:27:41 -0700 Subject: [PATCH] mds: apply cap mask in choose_lock_state Otherwise we get CAP_GWR and other bits outside of simplelock mask. --- src/mds/CInode.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/mds/CInode.h b/src/mds/CInode.h index cdfe015be1c61..c642604124f3b 100644 --- a/src/mds/CInode.h +++ b/src/mds/CInode.h @@ -587,7 +587,7 @@ public: // choose new lock state during recovery, based on issued caps void choose_lock_state(SimpleLock *lock, int allissued) { int shift = lock->get_cap_shift(); - int issued = allissued >> shift; + int issued = (allissued >> shift) & lock->get_cap_mask(); if (is_auth()) { if (issued & CEPH_CAP_GEXCL) lock->set_state(LOCK_EXCL); -- 2.39.5