]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
client: add DentryRef
authorPatrick Donnelly <pdonnell@ibm.com>
Thu, 31 Oct 2024 00:39:32 +0000 (20:39 -0400)
committerPatrick Donnelly <pdonnell@ibm.com>
Thu, 27 Feb 2025 18:41:53 +0000 (13:41 -0500)
Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
Fixes: https://tracker.ceph.com/issues/66373
src/client/Dentry.cc
src/client/DentryRef.h [new file with mode: 0644]

index f8741050a443681f3f5dfebc1865e5617c0d3d1d..70675599210ab1509c57bedf35d18b7e9694335a 100644 (file)
@@ -31,3 +31,13 @@ std::ostream &operator<<(std::ostream &oss, const Dentry &dn)
 {
   return oss << dn.dir->parent_inode->vino() << "[\"" << dn.name << "\"]";
 }
+
+void intrusive_ptr_add_ref(Dentry* dn)
+{
+  dn->get();
+}
+
+void intrusive_ptr_release(Dentry* dn)
+{
+  dn->put();
+}
diff --git a/src/client/DentryRef.h b/src/client/DentryRef.h
new file mode 100644 (file)
index 0000000..3ef209a
--- /dev/null
@@ -0,0 +1,23 @@
+// -*- mode:C++; tab-width:8; c-basic-offset:2; indent-tabs-mode:t -*-
+// vim: ts=8 sw=2 smarttab
+/*
+ * Ceph - scalable distributed file system
+ *
+ * Copyright (C) 2024 IBM, Inc.
+ *
+ * This is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software
+ * Foundation.  See file COPYING.
+ *
+ */
+
+#ifndef CEPH_CLIENT_DENTRYREF_H
+#define CEPH_CLIENT_DENTRYREF_H
+
+#include <boost/intrusive_ptr.hpp>
+class Dentry;
+void intrusive_ptr_add_ref(Dentry *in);
+void intrusive_ptr_release(Dentry *in);
+typedef boost::intrusive_ptr<Dentry> DentryRef;
+#endif