]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
mds: CDir::log_mark_dirty needs to flush before waiting
authorSage Weil <sage@newdream.net>
Fri, 17 Jun 2011 16:21:34 +0000 (09:21 -0700)
committerSage Weil <sage@newdream.net>
Fri, 17 Jun 2011 16:21:51 +0000 (09:21 -0700)
We need to flush before waiting or else our completion (and mark_diryt())
will be out of order with respect to other dir updates.

Signed-off-by: Sage Weil <sage@newdream.net>
src/mds/CDir.cc

index 01bba6cde1a453f8d5fe273d702c7faa9dc5a383..bfb6cf3944f032aad9fbfda360a9b5a414f61a78 100644 (file)
@@ -1266,6 +1266,7 @@ void CDir::log_mark_dirty()
 {
   MDLog *mdlog = inode->mdcache->mds->mdlog;
   version_t pv = pre_dirty();
+  mdlog->flush();
   mdlog->wait_for_safe(new C_Dir_Dirty(this, pv, mdlog->get_current_segment()));
 }