1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-25 02:47:35 +00:00

Kernel/DevFS: Remove some unnecessary inode locking

Unless we're accessing mutex-guarded metadata, there's no need to
acquire the inode lock.

The file system ID or inode index of a constructed inode will never
change, for example.
This commit is contained in:
Andreas Kling 2021-07-17 21:25:57 +02:00
parent 3b805a57e6
commit 9359f7801f

View file

@ -160,9 +160,9 @@ KResultOr<size_t> DevFSLinkInode::read_bytes(off_t offset, size_t, UserOrKernelB
return EFAULT; return EFAULT;
return m_link.length(); return m_link.length();
} }
InodeMetadata DevFSLinkInode::metadata() const InodeMetadata DevFSLinkInode::metadata() const
{ {
Locker locker(m_inode_lock);
InodeMetadata metadata; InodeMetadata metadata;
metadata.inode = { fsid(), index() }; metadata.inode = { fsid(), index() };
metadata.mode = S_IFLNK | 0555; metadata.mode = S_IFLNK | 0555;
@ -172,6 +172,7 @@ InodeMetadata DevFSLinkInode::metadata() const
metadata.mtime = mepoch; metadata.mtime = mepoch;
return metadata; return metadata;
} }
KResultOr<size_t> DevFSLinkInode::write_bytes(off_t offset, size_t count, const UserOrKernelBuffer& buffer, FileDescription*) KResultOr<size_t> DevFSLinkInode::write_bytes(off_t offset, size_t count, const UserOrKernelBuffer& buffer, FileDescription*)
{ {
Locker locker(m_inode_lock); Locker locker(m_inode_lock);
@ -188,9 +189,9 @@ DevFSDirectoryInode::DevFSDirectoryInode(DevFS& fs)
DevFSDirectoryInode::~DevFSDirectoryInode() DevFSDirectoryInode::~DevFSDirectoryInode()
{ {
} }
InodeMetadata DevFSDirectoryInode::metadata() const InodeMetadata DevFSDirectoryInode::metadata() const
{ {
Locker locker(m_inode_lock);
InodeMetadata metadata; InodeMetadata metadata;
metadata.inode = { fsid(), 1 }; metadata.inode = { fsid(), 1 };
metadata.mode = 0040555; metadata.mode = 0040555;
@ -202,14 +203,14 @@ InodeMetadata DevFSDirectoryInode::metadata() const
} }
KResult DevFSDirectoryInode::traverse_as_directory(Function<bool(FileSystem::DirectoryEntryView const&)>) const KResult DevFSDirectoryInode::traverse_as_directory(Function<bool(FileSystem::DirectoryEntryView const&)>) const
{ {
Locker locker(m_inode_lock);
return EINVAL; return EINVAL;
} }
RefPtr<Inode> DevFSDirectoryInode::lookup(StringView) RefPtr<Inode> DevFSDirectoryInode::lookup(StringView)
{ {
Locker locker(m_inode_lock);
return nullptr; return nullptr;
} }
KResultOr<size_t> DevFSDirectoryInode::directory_entry_count() const KResultOr<size_t> DevFSDirectoryInode::directory_entry_count() const
{ {
Locker locker(m_inode_lock); Locker locker(m_inode_lock);
@ -309,7 +310,6 @@ DevFSRootDirectoryInode::~DevFSRootDirectoryInode()
} }
InodeMetadata DevFSRootDirectoryInode::metadata() const InodeMetadata DevFSRootDirectoryInode::metadata() const
{ {
Locker locker(m_parent_fs.m_lock);
InodeMetadata metadata; InodeMetadata metadata;
metadata.inode = { fsid(), 1 }; metadata.inode = { fsid(), 1 };
metadata.mode = 0040555; metadata.mode = 0040555;
@ -407,7 +407,6 @@ DevFSPtsDirectoryInode::~DevFSPtsDirectoryInode()
} }
InodeMetadata DevFSPtsDirectoryInode::metadata() const InodeMetadata DevFSPtsDirectoryInode::metadata() const
{ {
Locker locker(m_inode_lock);
InodeMetadata metadata; InodeMetadata metadata;
metadata.inode = { fsid(), index() }; metadata.inode = { fsid(), index() };
metadata.mode = 0040555; metadata.mode = 0040555;