summaryrefslogtreecommitdiff
path: root/Kernel
diff options
context:
space:
mode:
Diffstat (limited to 'Kernel')
-rw-r--r--Kernel/FileSystem/Inode.cpp2
-rw-r--r--Kernel/FileSystem/Inode.h2
-rw-r--r--Kernel/Net/LocalSocket.cpp5
-rw-r--r--Kernel/Net/LocalSocket.h2
4 files changed, 5 insertions, 6 deletions
diff --git a/Kernel/FileSystem/Inode.cpp b/Kernel/FileSystem/Inode.cpp
index e6b8f1ef14..1eea0c0b82 100644
--- a/Kernel/FileSystem/Inode.cpp
+++ b/Kernel/FileSystem/Inode.cpp
@@ -143,7 +143,7 @@ ErrorOr<void> Inode::set_shared_vmobject(Memory::SharedInodeVMObject& vmobject)
LockRefPtr<LocalSocket> Inode::bound_socket() const
{
- return m_bound_socket;
+ return m_bound_socket.strong_ref();
}
bool Inode::bind_socket(LocalSocket& socket)
diff --git a/Kernel/FileSystem/Inode.h b/Kernel/FileSystem/Inode.h
index c954de927a..8a327ff266 100644
--- a/Kernel/FileSystem/Inode.h
+++ b/Kernel/FileSystem/Inode.h
@@ -131,7 +131,7 @@ private:
FileSystem& m_file_system;
InodeIndex m_index { 0 };
LockWeakPtr<Memory::SharedInodeVMObject> m_shared_vmobject;
- LockRefPtr<LocalSocket> m_bound_socket;
+ LockWeakPtr<LocalSocket> m_bound_socket;
SpinlockProtected<HashTable<InodeWatcher*>, LockRank::None> m_watchers {};
bool m_metadata_dirty { false };
LockRefPtr<FIFO> m_fifo;
diff --git a/Kernel/Net/LocalSocket.cpp b/Kernel/Net/LocalSocket.cpp
index bc4afc01e3..4b55e8bea2 100644
--- a/Kernel/Net/LocalSocket.cpp
+++ b/Kernel/Net/LocalSocket.cpp
@@ -260,9 +260,8 @@ void LocalSocket::detach(OpenFileDescription& description)
m_accept_side_fd_open = false;
if (m_bound) {
- auto inode = m_inode.strong_ref();
- if (inode)
- inode->unbind_socket();
+ if (m_inode)
+ m_inode->unbind_socket();
}
}
diff --git a/Kernel/Net/LocalSocket.h b/Kernel/Net/LocalSocket.h
index 91722d72cd..5416bd5373 100644
--- a/Kernel/Net/LocalSocket.h
+++ b/Kernel/Net/LocalSocket.h
@@ -73,7 +73,7 @@ private:
ErrorOr<void> try_set_path(StringView);
// The inode this socket is bound to.
- LockWeakPtr<Inode> m_inode;
+ LockRefPtr<Inode> m_inode;
UserID m_prebind_uid { 0 };
GroupID m_prebind_gid { 0 };