From: Sage Weil Date: Mon, 8 Feb 2010 22:59:33 +0000 (-0800) Subject: osd: carry ondisk_read_lock if prepare_transaction may_read() X-Git-Tag: v0.20~431^2~6 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=48e3b00f42ae2f09f100c3aa603003724bd256db;p=ceph.git osd: carry ondisk_read_lock if prepare_transaction may_read() --- diff --git a/src/osd/ReplicatedPG.cc b/src/osd/ReplicatedPG.cc index 846644ddcdf1..d8ee59c49af0 100644 --- a/src/osd/ReplicatedPG.cc +++ b/src/osd/ReplicatedPG.cc @@ -577,7 +577,16 @@ void ReplicatedPG::do_op(MOSDOp *op) // we are acker. if (!noop) { + + if (op->may_read()) { + dout(10) << " taking ondisk_read_lock" << dendl; + obc->ondisk_read_lock(); + } int result = prepare_transaction(ctx); + if (op->may_read()) { + dout(10) << " dropping ondisk_read_lock" << dendl; + obc->ondisk_read_unlock(); + } if (result >= 0) log_op_stats(soid, ctx);