]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
osd: carry ondisk_read_lock if prepare_transaction may_read()
authorSage Weil <sage@newdream.net>
Mon, 8 Feb 2010 22:59:33 +0000 (14:59 -0800)
committerSage Weil <sage@newdream.net>
Tue, 9 Feb 2010 16:09:23 +0000 (08:09 -0800)
src/osd/ReplicatedPG.cc

index 846644ddcdf137e8ca9a603ff72c27e028a489e5..d8ee59c49af0c98faed3a94a89c1c875782e5737 100644 (file)
@@ -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);