diff options
author | Sage Weil <sage.weil@dreamhost.com> | 2012-04-28 22:17:06 -0700 |
---|---|---|
committer | Sage Weil <sage.weil@dreamhost.com> | 2012-04-28 22:17:06 -0700 |
commit | a13672f8042305d272d6f9666d3bd0517a0dcedc (patch) | |
tree | 8b8d34f4b3b771842fbbe4d8cb5d08d932187cb0 | |
parent | 7fd33607b9bb42a34e9be02a6a343f82776e99a0 (diff) | |
download | ceph-a13672f8042305d272d6f9666d3bd0517a0dcedc.tar.gz |
osd: write dirty info on handle info, notify, log
Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
-rw-r--r-- | src/osd/OSD.cc | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/osd/OSD.cc b/src/osd/OSD.cc index f7d146e0c69..112f7eaa158 100644 --- a/src/osd/OSD.cc +++ b/src/osd/OSD.cc @@ -4274,6 +4274,8 @@ void OSD::handle_pg_notify(OpRequestRef op) PG::RecoveryCtx rctx(&query_map, &info_map, 0, &fin->contexts, t); pg->handle_notify(from, it->first, &rctx); + if (pg->dirty_info) + pg->write_info(*t); int tr = store->queue_transaction(&pg->osr, t, new ObjectStore::C_DeleteTransaction(t), fin); assert(tr == 0); @@ -4321,6 +4323,8 @@ void OSD::handle_pg_log(OpRequestRef op) map< int, MOSDPGInfo* > info_map; PG::RecoveryCtx rctx(&query_map, &info_map, 0, &fin->contexts, t); pg->handle_log(from, m, &rctx); + if (pg->dirty_info) + pg->write_info(*t); pg->unlock(); do_queries(query_map); do_infos(info_map); @@ -4370,6 +4374,8 @@ void OSD::handle_pg_info(OpRequestRef op) PG::RecoveryCtx rctx(0, &info_map, 0, &fin->contexts, t); pg->handle_info(from, p->first, &rctx); + if (pg->dirty_info) + pg->write_info(*t); int tr = store->queue_transaction(&pg->osr, t, new ObjectStore::C_DeleteTransaction(t), fin); assert(!tr); |