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-17 13:11:44 -0700
commit55f1368271b18faefdab0b603f207878b836c02f (patch)
tree29bfcc3cd7c8ecd9dde95228dca35f78bafbcb76
parentc8d31000e4b9dd3a93b9f074e4acbaff9a8dca3e (diff)
downloadceph-55f1368271b18faefdab0b603f207878b836c02f.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;