diff options
Diffstat (limited to 'Kernel')
-rw-r--r-- | Kernel/FileSystem/Inode.cpp | 2 | ||||
-rw-r--r-- | Kernel/FileSystem/Inode.h | 2 | ||||
-rw-r--r-- | Kernel/Net/LocalSocket.cpp | 5 | ||||
-rw-r--r-- | Kernel/Net/LocalSocket.h | 2 |
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 }; |