1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-25 06:27:45 +00:00

Kernel: Generalize VFS metadata lookup and use it in mount() and stat()

Refactored VFS::stat() into VFS::lookup_metadata(), which can now be
used for general VFS metadata lookup by path.
This commit is contained in:
Andreas Kling 2019-08-02 19:23:23 +02:00
parent ae4d707684
commit a6fb055028
3 changed files with 21 additions and 21 deletions

View file

@ -145,12 +145,12 @@ KResult VFS::utime(StringView path, Custody& base, time_t atime, time_t mtime)
return KSuccess;
}
KResult VFS::stat(StringView path, int options, Custody& base, struct stat& statbuf)
KResultOr<InodeMetadata> VFS::lookup_metadata(StringView path, Custody& base, int options)
{
auto custody_or_error = resolve_path(path, base, nullptr, options);
if (custody_or_error.is_error())
return custody_or_error.error();
return custody_or_error.value()->inode().metadata().stat(statbuf);
return custody_or_error.value()->inode().metadata();
}
KResultOr<NonnullRefPtr<FileDescription>> VFS::open(StringView path, int options, mode_t mode, Custody& base)

View file

@ -73,7 +73,7 @@ public:
KResult chown(StringView path, uid_t, gid_t, Custody& base);
KResult chown(Inode&, uid_t, gid_t);
KResult access(StringView path, int mode, Custody& base);
KResult stat(StringView path, int options, Custody& base, struct stat&);
KResultOr<InodeMetadata> lookup_metadata(StringView path, Custody& base, int options = 0);
KResult utime(StringView path, Custody& base, time_t atime, time_t mtime);
KResult rename(StringView oldpath, StringView newpath, Custody& base);
KResult mknod(StringView path, mode_t, dev_t, Custody& base);