summaryrefslogtreecommitdiffstats
path: root/src/mds/StrayManager.h
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-23 16:45:17 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-23 16:45:44 +0000
commit17d6a993fc17d533460c5f40f3908c708e057c18 (patch)
tree1a3bd93e0ecd74fa02f93a528fe2f87e5314c4b5 /src/mds/StrayManager.h
parentReleasing progress-linux version 18.2.2-0progress7.99u1. (diff)
downloadceph-17d6a993fc17d533460c5f40f3908c708e057c18.tar.xz
ceph-17d6a993fc17d533460c5f40f3908c708e057c18.zip
Merging upstream version 18.2.3.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'src/mds/StrayManager.h')
-rw-r--r--src/mds/StrayManager.h17
1 files changed, 16 insertions, 1 deletions
diff --git a/src/mds/StrayManager.h b/src/mds/StrayManager.h
index 86b6941a5..874fbbb9a 100644
--- a/src/mds/StrayManager.h
+++ b/src/mds/StrayManager.h
@@ -19,15 +19,30 @@
#include <list>
#include "Mutation.h"
#include "PurgeQueue.h"
+#include "MDSMetaRequest.h"
+#include "CDentry.h"
class MDSRank;
class CInode;
-class CDentry;
class StrayManager
{
// My public interface is for consumption by MDCache
public:
+ struct StrayEvalRequest : public MDSMetaRequest {
+ CDentry *dentry;
+ public:
+ explicit StrayEvalRequest(int o, ceph_tid_t t, CDentry *d) :
+ MDSMetaRequest(o, t), dentry(d) {
+ dentry->get(CDentry::PIN_PURGING);
+ dentry->reintegration_reqid = t;
+ }
+ ~StrayEvalRequest() {
+ dentry->reintegration_reqid = 0;
+ dentry->put(CDentry::PIN_PURGING);
+ }
+ };
+
explicit StrayManager(MDSRank *mds, PurgeQueue &purge_queue_);
void set_logger(PerfCounters *l) {logger = l;}
void activate();