summaryrefslogtreecommitdiff
path: root/VirtualFileSystem
diff options
context:
space:
mode:
Diffstat (limited to 'VirtualFileSystem')
-rw-r--r--VirtualFileSystem/VirtualFileSystem.cpp3
-rw-r--r--VirtualFileSystem/VirtualFileSystem.h4
2 files changed, 7 insertions, 0 deletions
diff --git a/VirtualFileSystem/VirtualFileSystem.cpp b/VirtualFileSystem/VirtualFileSystem.cpp
index da482bd9fa..31cdf58d2e 100644
--- a/VirtualFileSystem/VirtualFileSystem.cpp
+++ b/VirtualFileSystem/VirtualFileSystem.cpp
@@ -180,6 +180,7 @@ auto VirtualFileSystem::allocateNode() -> RetainPtr<Node>
ASSERT(node->retainCount == 0);
node->retainCount = 1;
node->m_vfs = this;
+ node->m_vmo = nullptr;
return adopt(*node);
}
@@ -197,6 +198,8 @@ void VirtualFileSystem::freeNode(Node* node)
m_device2vnode.remove(encodedDevice(node->m_characterDevice->major(), node->m_characterDevice->minor()));
node->m_characterDevice = nullptr;
}
+ node->m_vfs = nullptr;
+ node->m_vmo = nullptr;
m_nodeFreeList.append(move(node));
}
diff --git a/VirtualFileSystem/VirtualFileSystem.h b/VirtualFileSystem/VirtualFileSystem.h
index 2f30223d72..a9afa9c33f 100644
--- a/VirtualFileSystem/VirtualFileSystem.h
+++ b/VirtualFileSystem/VirtualFileSystem.h
@@ -65,12 +65,16 @@ public:
VirtualFileSystem* vfs() { return m_vfs; }
const VirtualFileSystem* vfs() const { return m_vfs; }
+ void* vmo() { return m_vmo; }
+ void set_vmo(void* vmo) { m_vmo = vmo; }
+
private:
friend class VirtualFileSystem;
VirtualFileSystem* m_vfs { nullptr };
unsigned retainCount { 0 };
CharacterDevice* m_characterDevice { nullptr };
mutable InodeMetadata m_cachedMetadata;
+ void* m_vmo { nullptr };
};
static VirtualFileSystem& the() PURE;