summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSage Weil <sage@newdream.net>2009-02-23 20:27:40 -0800
committerSage Weil <sage@newdream.net>2009-02-23 20:27:40 -0800
commit1e7cb5fe92768d4a6e913fa8bb1da86264bfb5a5 (patch)
tree99f8caecff54c6122d4d96203ed21bf7f0328395
parenteeab259d4580597c8c1f9c02cd12deb442fc9363 (diff)
downloadceph-1e7cb5fe92768d4a6e913fa8bb1da86264bfb5a5.tar.gz
mds: flush journal on create if dir filelock is unstable
This isn't particularly precise, but works for now.
-rw-r--r--src/mds/Server.cc3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/mds/Server.cc b/src/mds/Server.cc
index 2590594d4a2..bc7a83931da 100644
--- a/src/mds/Server.cc
+++ b/src/mds/Server.cc
@@ -2641,6 +2641,9 @@ void Server::handle_client_create(MDRequest *mdr)
newi->xattrlock.set_state((keep & CEPH_CAP_XATTR_EXCL) ? LOCK_EXCL:LOCK_SYNC);
mdlog->submit_entry(le, new C_MDS_mknod_finish(mds, mdr, dn, newi, follows), true);
+
+ if (!dn->get_dir()->get_inode()->filelock.is_stable())
+ mdlog->flush();
}