From: Yan, Zheng Date: Sat, 3 May 2014 21:17:15 +0000 (+0800) Subject: osd: check blacklisted clients in ReplicatedPG::do_op() X-Git-Tag: v0.81~72 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=24c5ea8df040da0889be7ab1a9985ae03ee68d9e;p=ceph.git osd: check blacklisted clients in ReplicatedPG::do_op() OSD checks if client is blacklisted only when receiving OSD request. It's possible that OSD request's sender get blacklisted while OSD request in in some waiting list. Signed-off-by: Yan, Zheng (cherry picked from commit f92677c5b2cac03f42f15c826bfb809fec27830d) --- diff --git a/src/osd/ReplicatedPG.cc b/src/osd/ReplicatedPG.cc index 218cc1bca3a2..68b14040f7ee 100644 --- a/src/osd/ReplicatedPG.cc +++ b/src/osd/ReplicatedPG.cc @@ -1200,6 +1200,12 @@ void ReplicatedPG::do_op(OpRequestRef op) return do_pg_op(op); } + if (get_osdmap()->is_blacklisted(m->get_source_addr())) { + dout(10) << "do_op " << m->get_source_addr() << " is blacklisted" << dendl; + osd->reply_op_error(op, -EBLACKLISTED); + return; + } + // order this op as a write? bool write_ordered = op->may_write() ||