1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-31 15:48:12 +00:00

Kernel+FileManager: Disallow watch_file() in unsupported file systems

Currently only Ext2FS and TmpFS supports InodeWatchers. We now fail
with ENOTSUPP if watch_file() is called on e.g ProcFS.

This fixes an issue with FileManager chewing up all the CPU when /proc
was opened. Watchers don't keep the watched Inode open, and when they
close, the watcher FD will EOF.

Since nothing else kept /proc open in FileManager, the watchers created
for it would EOF immediately, causing a refresh over and over.

Fixes #879.
This commit is contained in:
Andreas Kling 2019-12-15 19:33:39 +01:00
parent 7fea25943d
commit 5292f6e78f
6 changed files with 21 additions and 9 deletions

View file

@ -37,6 +37,7 @@ public:
virtual bool initialize() = 0;
virtual const char* class_name() const = 0;
virtual InodeIdentifier root_inode() const = 0;
virtual bool supports_watchers() const { return false; }
bool is_readonly() const { return m_readonly; }