From: Sage Weil Date: Wed, 14 Oct 2015 14:02:55 +0000 (-0400) Subject: osd/PG: make upgrade() use sequencer X-Git-Tag: v9.2.0~6^2~1 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=7673845488385ff4ae3d483471303bd66b0ad2d9;p=ceph.git osd/PG: make upgrade() use sequencer Signed-off-by: Sage Weil --- diff --git a/src/osd/PG.cc b/src/osd/PG.cc index c0cc9e8714e2..8ddfd0d6e159 100644 --- a/src/osd/PG.cc +++ b/src/osd/PG.cc @@ -2677,13 +2677,20 @@ void PG::upgrade(ObjectStore *store) dirty_big_info = true; write_if_dirty(t); - int r = store->apply_transaction(t); + ceph::shared_ptr osr( + new ObjectStore::Sequencer("upgrade")); + int r = store->apply_transaction(osr.get(), t); if (r != 0) { derr << __func__ << ": apply_transaction returned " << cpp_strerror(r) << dendl; assert(0); } assert(r == 0); + + C_SaferCond waiter; + if (!osr->flush_commit(&waiter)) { + waiter.wait(); + } } #pragma GCC diagnostic pop