]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
Merge branch 'next'
authorSage Weil <sage@newdream.net>
Wed, 24 Aug 2011 16:38:01 +0000 (09:38 -0700)
committerSage Weil <sage@newdream.net>
Wed, 24 Aug 2011 16:38:01 +0000 (09:38 -0700)
1  2 
src/client/Client.cc

index 8e66047981a826fad675cc9b6401e36d3e8346f9,7f7f990a72376a1bf58296acee4fccd69b465517..208569d86374a422ab5a23c62991c067f93d9617
@@@ -1779,11 -1779,16 +1779,16 @@@ Dentry* Client::link(Dir *dir, const st
      if (!in->dn_set.empty())
        ldout(cct, 5) << "adding new hard link to " << in->vino()
                    << " from " << dn << dendl;
-     in->dn_set.insert(dn);
      in->get();
-     
      if (in->dir)
        dn->get();  // dir -> dn pin
 -      unlink(dentry_of(in), false);
+     // only one parent for directories!
+     if (in->is_dir() && !in->dn_set.empty()) {
++      unlink(in->get_first_parent(), false);
+     }
+     in->dn_set.insert(dn);
    }
    
    return dn;