summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSage Weil <sage.weil@dreamhost.com>2012-04-28 22:17:06 -0700
committerSage Weil <sage.weil@dreamhost.com>2012-04-28 22:17:06 -0700
commita13672f8042305d272d6f9666d3bd0517a0dcedc (patch)
tree8b8d34f4b3b771842fbbe4d8cb5d08d932187cb0
parent7fd33607b9bb42a34e9be02a6a343f82776e99a0 (diff)
downloadceph-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.cc6
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);