]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
osd/: dirty info and log on child during split
authorSamuel Just <sam.just@inktank.com>
Tue, 13 Nov 2012 22:48:54 +0000 (14:48 -0800)
committerSamuel Just <sam.just@inktank.com>
Fri, 7 Dec 2012 06:51:56 +0000 (22:51 -0800)
Otherwise, the log may not get written out.

Signed-off-by: Samuel Just <sam.just@inktank.com>
src/osd/OSD.cc
src/osd/PG.cc

index 7e8506a5b6c70fcbf87bd12824db7fb8368762b6..2236fa1172b56631b68d7b3d6df79d9d3efcbdb8 100644 (file)
@@ -4512,6 +4512,7 @@ void OSD::split_pgs(
     child->write_if_dirty(*(rctx->transaction));
     child->unlock();
   }
+  parent->write_if_dirty(*(rctx->transaction));
 }
   
 
index 800236f1e0cd2dfa89395fd1968f02ea1a533db6..da843ea037d0f207f9c9fed7b1091ccdb3eca2bd 100644 (file)
@@ -2038,6 +2038,11 @@ void PG::split_into(pg_t child_pgid, PG *child, unsigned split_bits)
 
   split_ops(child, split_bits);
   _split_into(child_pgid, child, split_bits);
+
+  child->dirty_info = true;
+  child->dirty_log = true;
+  dirty_info = true;
+  dirty_log = true;
 }
 
 void PG::defer_recovery()