summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSage Weil <sage@newdream.net>2009-04-04 21:12:18 -0700
committerSage Weil <sage@newdream.net>2009-04-04 21:12:18 -0700
commit9892183acf4ae2d4180313159f71dd0a4feca212 (patch)
treeccd3ee84b24e80b0d1a816d26078bbc9d54bcfaa
parentb70721e4e77957cf9825f9c82944fff55b085f6c (diff)
downloadceph-9892183acf4ae2d4180313159f71dd0a4feca212.tar.gz
mds: make sure kick wasn't immediatley fruitful in rdlock_try
-rw-r--r--src/mds/Locker.cc3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/mds/Locker.cc b/src/mds/Locker.cc
index 1e0a19c9371..c779f44b5dd 100644
--- a/src/mds/Locker.cc
+++ b/src/mds/Locker.cc
@@ -595,6 +595,9 @@ bool Locker::rdlock_try(SimpleLock *lock, int client, Context *con)
_rdlock_kick(lock);
+ if (lock->can_rdlock(client))
+ return true;
+
// wait!
dout(7) << "rdlock_try waiting on " << *lock << " on " << *lock->get_parent() << dendl;
if (con) lock->add_waiter(SimpleLock::WAIT_RD, con);