]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
Merge remote-tracking branch 'gh/wip-fs-quota'
authorSage Weil <sage@redhat.com>
Fri, 19 Dec 2014 15:45:02 +0000 (07:45 -0800)
committerSage Weil <sage@redhat.com>
Fri, 19 Dec 2014 15:45:02 +0000 (07:45 -0800)
Conflicts:
src/client/Client.cc

1  2 
src/ceph_mds.cc
src/client/Client.cc
src/client/Client.h
src/client/Inode.h
src/common/config_opts.h
src/mds/MDCache.cc
src/mds/Migrator.cc
src/mds/Server.cc
src/mds/Server.h
src/msg/Message.h

diff --cc src/ceph_mds.cc
Simple merge
index 0a0dc85b65146c627dbc0e126413a2766ab018e8,4048b30072027adca8004dce29c2a5273c5a2f02..11222b4d90c46182b0a6d9d72c61a793cda7ab09
@@@ -47,7 -47,8 +47,8 @@@ using namespace std
  #include "messages/MClientLease.h"
  #include "messages/MClientSnap.h"
  #include "messages/MCommandReply.h"
 +#include "messages/MOSDMap.h"
+ #include "messages/MClientQuota.h"
  
  #include "messages/MGenericMessage.h"
  
@@@ -2409,15 -2359,15 +2436,22 @@@ void Client::put_inode(Inode *in, int n
      inode_map.erase(in->vino());
      in->cap_item.remove_myself();
      in->snaprealm_item.remove_myself();
-     if (in == root)
+     if (in == root) {
        root = 0;
+       root_ancestor = 0;
+       while (!root_parents.empty()) {
+         Inode *in = root_parents.begin()->second;
+         root_parents.erase(root_parents.begin());
+         put_inode(in);
+       }
+     }
 +
 +    if (!in->oset.objects.empty()) {
 +      ldout(cct, 0) << __func__ << ": leftover objects on inode 0x"
 +        << std::hex << in->ino << std::dec << dendl;
 +      assert(in->oset.objects.empty());
 +    }
 +
      delete in->fcntl_locks;
      delete in->flock_locks;
      delete in;
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge