]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
mds: fix snaprealm create split
authorSage Weil <sage@newdream.net>
Tue, 24 Aug 2010 19:12:16 +0000 (12:12 -0700)
committerSage Weil <sage@newdream.net>
Tue, 24 Aug 2010 19:14:59 +0000 (12:14 -0700)
Need to check if diri->snaprealm is set _before_ popping the dirty inode
(and new snaprealm!).

src/mds/Server.cc

index f2d1df9c6cc3cc67583617c1cd58ebdae9d63816..0d44b2ea63ca5fe626482c646e16b3c75af708c3 100644 (file)
@@ -5744,13 +5744,14 @@ void Server::_mksnap_finish(MDRequest *mdr, CInode *diri, SnapInfo &info)
 {
   dout(10) << "_mksnap_finish " << *mdr << " " << info << dendl;
 
+  int op = (diri->snaprealm? CEPH_SNAP_OP_CREATE : CEPH_SNAP_OP_SPLIT);
+
   diri->pop_and_dirty_projected_inode(mdr->ls);
   mdr->apply();
 
   mds->snapclient->commit(mdr->more()->stid, mdr->ls);
 
   // create snap
-  int op = (diri->snaprealm? CEPH_SNAP_OP_CREATE : CEPH_SNAP_OP_SPLIT);
   dout(10) << "snaprealm now " << *diri->snaprealm << dendl;
 
   mdcache->do_realm_invalidate_and_update_notify(diri, op);