summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGreg Farnum <greg@inktank.com>2013-10-04 15:54:21 -0700
committerGreg Farnum <greg@inktank.com>2013-10-08 16:24:06 -0700
commit5f36dbdafaac8effc0b973643977e2b0961f98ce (patch)
tree334ba3ea5bfce54895730851ad5fcd9f941fcd2c
parent44826d97ca77cdfb313ad3f267a0b91d52cca489 (diff)
downloadceph-5f36dbdafaac8effc0b973643977e2b0961f98ce.tar.gz
ReplicatedPG: cache: don't handle cache if the obc is blocked
Right now the only way that can happen is if we're in the middle of a promote! Signed-off-by: Greg Farnum <greg@inktank.com>
-rw-r--r--src/osd/ReplicatedPG.cc4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/osd/ReplicatedPG.cc b/src/osd/ReplicatedPG.cc
index f424aeaeee9..4020aa8116a 100644
--- a/src/osd/ReplicatedPG.cc
+++ b/src/osd/ReplicatedPG.cc
@@ -1140,6 +1140,10 @@ void ReplicatedPG::do_op(OpRequestRef op)
bool ReplicatedPG::maybe_handle_cache(OpRequestRef op, ObjectContextRef obc,
int r)
{
+ if (obc.get() && obc->is_blocked()) {
+ // we're already doing something with this object
+ return false;
+ }
switch(pool.info.cache_mode) {
case pg_pool_t::CACHEMODE_NONE:
return false;