浏览代码

Kernel: Implement InodeFile::stat() and simplify FileDescription::stat()

Max Wipfli 4 年之前
父节点
当前提交
cac94b1c16
共有 2 个文件被更改,包括 1 次插入3 次删除
  1. 0 3
      Kernel/FileSystem/FileDescription.cpp
  2. 1 0
      Kernel/FileSystem/InodeFile.h

+ 0 - 3
Kernel/FileSystem/FileDescription.cpp

@@ -110,9 +110,6 @@ Thread::FileBlocker::BlockFlags FileDescription::should_unblock(Thread::FileBloc
 KResult FileDescription::stat(::stat& buffer)
 {
     Locker locker(m_lock);
-    // FIXME: This is a little awkward, why can't we always forward to File::stat()?
-    if (m_inode)
-        return metadata().stat(buffer);
     return m_file->stat(buffer);
 }
 

+ 1 - 0
Kernel/FileSystem/InodeFile.h

@@ -34,6 +34,7 @@ public:
     virtual KResultOr<size_t> write(FileDescription&, u64, const UserOrKernelBuffer&, size_t) override;
     virtual int ioctl(FileDescription&, unsigned request, FlatPtr arg) override;
     virtual KResultOr<Region*> mmap(Process&, FileDescription&, const Range&, u64 offset, int prot, bool shared) override;
+    virtual KResult stat(::stat& buffer) const override { return inode().metadata().stat(buffer); }
 
     virtual String absolute_path(const FileDescription&) const override;