summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYan, Zheng <zheng.z.yan@intel.com>2013-01-27 15:31:47 +0800
committerYan, Zheng <zheng.z.yan@intel.com>2013-01-29 10:17:37 +0800
commit829aeba63a64558c2c38e037dc7e7431e677b433 (patch)
treefdbfe0f70accce5feb7719a5e93c811f2dc5076d
parent5884177667b9c5ca61236e5ee375b499d69b4f11 (diff)
downloadceph-829aeba63a64558c2c38e037dc7e7431e677b433.tar.gz
mds: clear inode dirty when slave rename finishes.
The inode is linked to a non-auth directory, so remove it from LogSegment's dirty inode list. Signed-off-by: Yan, Zheng <zheng.z.yan@intel.com>
-rw-r--r--src/mds/Server.cc5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/mds/Server.cc b/src/mds/Server.cc
index 00e7f77b42a..f8d1af1d11a 100644
--- a/src/mds/Server.cc
+++ b/src/mds/Server.cc
@@ -6345,7 +6345,10 @@ void Server::_logged_slave_rename(MDRequest *mdr,
// remove mdr auth pin
mdr->auth_unpin(srcdnl->get_inode());
mdr->more()->is_inode_exporter = true;
-
+
+ if (srcdnl->get_inode()->is_dirty())
+ srcdnl->get_inode()->mark_clean();
+
dout(10) << " exported srci " << *srcdnl->get_inode() << dendl;
}