diff --git a/Kernel/FileSystem/InodeWatcher.cpp b/Kernel/FileSystem/InodeWatcher.cpp index 1d1ccebd08..e3563f599b 100644 --- a/Kernel/FileSystem/InodeWatcher.cpp +++ b/Kernel/FileSystem/InodeWatcher.cpp @@ -24,13 +24,13 @@ InodeWatcher::~InodeWatcher() bool InodeWatcher::can_read(const OpenFileDescription&, u64) const { - SpinlockLocker locker(m_lock); + MutexLocker locker(m_lock); return !m_queue.is_empty(); } ErrorOr InodeWatcher::read(OpenFileDescription&, u64, UserOrKernelBuffer& buffer, size_t buffer_size) { - SpinlockLocker locker(m_lock); + MutexLocker locker(m_lock); if (m_queue.is_empty()) // can_read will catch the blocking case. return EAGAIN; @@ -69,7 +69,7 @@ ErrorOr InodeWatcher::read(OpenFileDescription&, u64, UserOrKernelBuffer ErrorOr InodeWatcher::close() { - SpinlockLocker locker(m_lock); + MutexLocker locker(m_lock); for (auto& entry : m_wd_to_watches) { auto& inode = const_cast(entry.value->inode); @@ -88,7 +88,7 @@ ErrorOr> InodeWatcher::pseudo_path(const OpenFileDescript void InodeWatcher::notify_inode_event(Badge, InodeIdentifier inode_id, InodeWatcherEvent::Type event_type, StringView name) { - SpinlockLocker locker(m_lock); + MutexLocker locker(m_lock); auto it = m_inode_to_watches.find(inode_id); if (it == m_inode_to_watches.end()) @@ -107,7 +107,7 @@ void InodeWatcher::notify_inode_event(Badge, InodeIdentifier inode_id, In ErrorOr InodeWatcher::register_inode(Inode& inode, unsigned event_mask) { - SpinlockLocker locker(m_lock); + MutexLocker locker(m_lock); if (m_inode_to_watches.find(inode.identifier()) != m_inode_to_watches.end()) return EEXIST; @@ -142,7 +142,7 @@ ErrorOr InodeWatcher::register_inode(Inode& inode, unsigned event_mask) ErrorOr InodeWatcher::unregister_by_wd(int wd) { - SpinlockLocker locker(m_lock); + MutexLocker locker(m_lock); auto it = m_wd_to_watches.find(wd); if (it == m_wd_to_watches.end()) @@ -159,7 +159,7 @@ ErrorOr InodeWatcher::unregister_by_wd(int wd) void InodeWatcher::unregister_by_inode(Badge, InodeIdentifier identifier) { - SpinlockLocker locker(m_lock); + MutexLocker locker(m_lock); auto it = m_inode_to_watches.find(identifier); if (it == m_inode_to_watches.end()) diff --git a/Kernel/FileSystem/InodeWatcher.h b/Kernel/FileSystem/InodeWatcher.h index a3d5ece833..39d80652ab 100644 --- a/Kernel/FileSystem/InodeWatcher.h +++ b/Kernel/FileSystem/InodeWatcher.h @@ -64,7 +64,7 @@ public: private: explicit InodeWatcher() { } - mutable Spinlock m_lock; + mutable Mutex m_lock; struct Event { int wd { 0 };