]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
mds: init metablob MDLog* for EImportStart
authorSage Weil <sage@newdream.net>
Thu, 14 Apr 2011 01:59:14 +0000 (18:59 -0700)
committerSage Weil <sage.weil@dreamhost.com>
Fri, 15 Apr 2011 04:18:03 +0000 (21:18 -0700)
This will initialize metablob.my_offset, which makes the parent inode
journaling logic work properly.

Signed-off-by: Sage Weil <sage@newdream.net>
src/mds/Migrator.cc
src/mds/events/EImportStart.h

index 7fea5d5950ef746d0a3bc1623af446d16aa1426a..c5798cfb41864349b984a54ff864c868574e3f3d 100644 (file)
@@ -1787,7 +1787,7 @@ void Migrator::handle_export_dir(MExportDir *m)
   C_MDS_ImportDirLoggedStart *onlogged = new C_MDS_ImportDirLoggedStart(this, dir, m->get_source().num());
 
   // start the journal entry
-  EImportStart *le = new EImportStart(dir->dirfrag(), m->bounds);
+  EImportStart *le = new EImportStart(mds->mdlog, dir->dirfrag(), m->bounds);
   mds->mdlog->start_entry(le);
 
   le->metablob.add_dir_context(dir);
index bd5acfc3cce78f7d8b07c6d64ebfdfc2b8e3f1b4..0d5f275e0ec1f6a9bb77bf44a17d0fa6fbe38487 100644 (file)
@@ -32,9 +32,11 @@ protected:
   bufferlist client_map;  // encoded map<__u32,entity_inst_t>
   version_t cmapv;
 
-  EImportStart(dirfrag_t di,
+  EImportStart(MDLog *log,
+              dirfrag_t di,
               vector<dirfrag_t>& b) : LogEvent(EVENT_IMPORTSTART), 
-                                      base(di), bounds(b) { }
+                                      base(di), bounds(b),
+                                      metablob(log) { }
   EImportStart() : LogEvent(EVENT_IMPORTSTART) { }
   
   void print(ostream& out) {