diff options
Diffstat (limited to 'Kernel/FileSystem/Inode.cpp')
-rw-r--r-- | Kernel/FileSystem/Inode.cpp | 10 |
1 files changed, 3 insertions, 7 deletions
diff --git a/Kernel/FileSystem/Inode.cpp b/Kernel/FileSystem/Inode.cpp index bfb7186e29..b301745df4 100644 --- a/Kernel/FileSystem/Inode.cpp +++ b/Kernel/FileSystem/Inode.cpp @@ -163,19 +163,15 @@ void Inode::unregister_watcher(Badge<InodeWatcher>, InodeWatcher& watcher) m_watchers.remove(&watcher); } -NonnullRefPtr<FIFO> Inode::fifo() +KResultOr<NonnullRefPtr<FIFO>> Inode::fifo() { MutexLocker locker(m_inode_lock); VERIFY(metadata().is_fifo()); // FIXME: Release m_fifo when it is closed by all readers and writers - if (!m_fifo) { - m_fifo = FIFO::try_create(metadata().uid); - // FIXME: We need to be able to observe OOM here. - VERIFY(!m_fifo.is_null()); - } + if (!m_fifo) + m_fifo = TRY(FIFO::try_create(metadata().uid)); - VERIFY(m_fifo); return *m_fifo; } |