From f5958ad52e826dd704e6b2d802444b94c1e3615d Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Tue, 5 Oct 2010 11:14:19 -0700 Subject: [PATCH] mds: set dir layout during replay Need to copy layout from the EMetaBlob::fullbit into the inode. Signed-off-by: Sage Weil --- src/mds/journal.cc | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/mds/journal.cc b/src/mds/journal.cc index 218cd056c0d..5cb14337d93 100644 --- a/src/mds/journal.cc +++ b/src/mds/journal.cc @@ -373,6 +373,8 @@ void EMetaBlob::replay(MDS *mds, LogSegment *logseg) in->xattrs = root->xattrs; if (in->inode.is_dir()) { in->dirfragtree = root->dirfragtree; + delete in->default_layout; + in->default_layout = root->dir_layout; /* * we can do this before linking hte inode bc the split_at would * be a no-op.. we have no children (namely open snaprealms) to @@ -469,6 +471,8 @@ void EMetaBlob::replay(MDS *mds, LogSegment *logseg) in->xattrs = p->xattrs; if (in->inode.is_dir()) { in->dirfragtree = p->dirfragtree; + delete in->default_layout; + in->default_layout = p->dir_layout; /* * we can do this before linking hte inode bc the split_at would * be a no-op.. we have no children (namely open snaprealms) to @@ -507,6 +511,8 @@ void EMetaBlob::replay(MDS *mds, LogSegment *logseg) in->xattrs = p->xattrs; if (in->inode.is_dir()) { in->dirfragtree = p->dirfragtree; + delete in->default_layout; + in->default_layout = p->dir_layout; in->decode_snap_blob(p->snapbl); } if (in->inode.is_symlink()) in->symlink = p->symlink;