This better internalizes Inode management.
Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
if (use_faked_inos())
_release_faked_ino(in);
- in->cap_item.remove_myself();
- in->snaprealm_item.remove_myself();
- in->snapdir_parent.reset();
if (in == root) {
root = 0;
root_ancestor = 0;
root_parents.erase(root_parents.begin());
}
- 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;
}
}
#include "ClientSnapRealm.h"
#include "UserGroups.h"
+#include "mds/flock.h"
+
+Inode::~Inode()
+{
+ cap_item.remove_myself();
+ snaprealm_item.remove_myself();
+ snapdir_parent.reset();
+
+ if (!oset.objects.empty()) {
+ lsubdout(client->cct, client, 0) << __func__ << ": leftover objects on inode 0x"
+ << std::hex << ino << std::dec << dendl;
+ assert(oset.objects.empty());
+ }
+
+ delete fcntl_locks;
+ delete flock_locks;
+}
+
ostream& operator<<(ostream &out, const Inode &in)
{
out << in.vino() << "("
memset(&dir_layout, 0, sizeof(dir_layout));
memset("a, 0, sizeof(quota));
}
- ~Inode() { }
+ ~Inode();
vinodeno_t vino() const { return vinodeno_t(ino, snapid); }