diff options
author | Andreas Kling <kling@serenityos.org> | 2022-02-07 12:57:57 +0100 |
---|---|---|
committer | Andreas Kling <kling@serenityos.org> | 2022-02-07 13:02:34 +0100 |
commit | cda56f8049df93a659b228088d2f3d1387558116 (patch) | |
tree | 8ebc38e7384a4ccd864abcb51a9d6d95ca3b4b44 /Kernel/FileSystem | |
parent | 4bfed6a5ede4595301285c0d6fc89ea461cfdde2 (diff) | |
download | serenity-cda56f8049df93a659b228088d2f3d1387558116.zip |
Kernel: Robustify and rename Inode bound socket API
Rename the bound socket accessor from socket() to bound_socket().
Also return RefPtr<LocalSocket> instead of a raw pointer, to make it
harder for callers to mess up.
Diffstat (limited to 'Kernel/FileSystem')
-rw-r--r-- | Kernel/FileSystem/Inode.cpp | 13 | ||||
-rw-r--r-- | Kernel/FileSystem/Inode.h | 5 |
2 files changed, 11 insertions, 7 deletions
diff --git a/Kernel/FileSystem/Inode.cpp b/Kernel/FileSystem/Inode.cpp index 1b8a606c9e..a8822a1e23 100644 --- a/Kernel/FileSystem/Inode.cpp +++ b/Kernel/FileSystem/Inode.cpp @@ -136,21 +136,26 @@ void Inode::set_shared_vmobject(Memory::SharedInodeVMObject& vmobject) m_shared_vmobject = vmobject; } +RefPtr<LocalSocket> Inode::bound_socket() const +{ + return m_bound_socket; +} + bool Inode::bind_socket(LocalSocket& socket) { MutexLocker locker(m_inode_lock); - if (m_socket) + if (m_bound_socket) return false; - m_socket = socket; + m_bound_socket = socket; return true; } bool Inode::unbind_socket() { MutexLocker locker(m_inode_lock); - if (!m_socket) + if (!m_bound_socket) return false; - m_socket = nullptr; + m_bound_socket = nullptr; return true; } diff --git a/Kernel/FileSystem/Inode.h b/Kernel/FileSystem/Inode.h index 775e4ad020..7351e892e2 100644 --- a/Kernel/FileSystem/Inode.h +++ b/Kernel/FileSystem/Inode.h @@ -66,8 +66,7 @@ public: virtual ErrorOr<int> get_block_address(int) { return ENOTSUP; } - LocalSocket* socket() { return m_socket.ptr(); } - const LocalSocket* socket() const { return m_socket.ptr(); } + RefPtr<LocalSocket> bound_socket() const; bool bind_socket(LocalSocket&); bool unbind_socket(); @@ -117,7 +116,7 @@ private: FileSystem& m_file_system; InodeIndex m_index { 0 }; WeakPtr<Memory::SharedInodeVMObject> m_shared_vmobject; - RefPtr<LocalSocket> m_socket; + RefPtr<LocalSocket> m_bound_socket; SpinlockProtected<HashTable<InodeWatcher*>> m_watchers; bool m_metadata_dirty { false }; RefPtr<FIFO> m_fifo; |