]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
mds: fix unlink stray snaprealm reference
authorSage Weil <sage@newdream.net>
Wed, 25 Mar 2009 23:27:18 +0000 (16:27 -0700)
committerSage Weil <sage@newdream.net>
Wed, 25 Mar 2009 23:27:47 +0000 (16:27 -0700)
Stray dir doesn't get a snaprealm currently.

src/mds/Server.cc

index 4677cdd8308edb48f1aac39a07844644c9f534fc..c453229e625a0d3c66680fc6fc3a300495fd2b08 100644 (file)
@@ -3271,10 +3271,10 @@ void Server::_unlink_local(MDRequest *mdr, CDentry *dn, CDentry *straydn)
     bufferlist snapbl;
     if (!dnl->get_inode()->snaprealm) {
       dnl->get_inode()->open_snaprealm(true);   // don't do a split
-      dnl->get_inode()->snaprealm->project_past_parent(straydn->get_dir()->inode->snaprealm, snapbl);
+      dnl->get_inode()->snaprealm->project_past_parent(straydn->get_dir()->inode->find_snaprealm(), snapbl);
       dnl->get_inode()->close_snaprealm(true);  // or a matching join
     } else
-      dnl->get_inode()->snaprealm->project_past_parent(straydn->get_dir()->inode->snaprealm, snapbl);
+      dnl->get_inode()->snaprealm->project_past_parent(straydn->get_dir()->inode->find_snaprealm(), snapbl);
 
     straydn->first = dnl->get_inode()->first;
     le->metablob.add_primary_dentry(straydn, true, dnl->get_inode(), pi, 0, &snapbl);
@@ -4030,10 +4030,10 @@ void Server::_rename_prepare(MDRequest *mdr,
       bufferlist snapbl;
       if (!destdnl->get_inode()->snaprealm) {
        destdnl->get_inode()->open_snaprealm(true);   // don't do a split
-       destdnl->get_inode()->snaprealm->project_past_parent(straydn->get_dir()->inode->snaprealm, snapbl);
+       destdnl->get_inode()->snaprealm->project_past_parent(straydn->get_dir()->inode->find_snaprealm(), snapbl);
        destdnl->get_inode()->close_snaprealm(true);  // or a matching join
       } else
-       destdnl->get_inode()->snaprealm->project_past_parent(straydn->get_dir()->inode->snaprealm, snapbl);
+       destdnl->get_inode()->snaprealm->project_past_parent(straydn->get_dir()->inode->find_snaprealm(), snapbl);
       straydn->first = destdnl->get_inode()->first;
       tji = metablob->add_primary_dentry(straydn, true, destdnl->get_inode(), tpi, 0, &snapbl);
     } else if (destdnl->is_remote()) {