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

Kernel: Rename Inode::m_lock => m_inode_lock

This makes file system code much easier to read since it was hard when
both the file system and inode locks were called "m_lock".
This commit is contained in:
Andreas Kling 2021-07-17 21:17:39 +02:00
parent 63e1423830
commit 3b805a57e6
8 changed files with 72 additions and 72 deletions

View file

@ -153,7 +153,7 @@ DevFSLinkInode::DevFSLinkInode(DevFS& fs, String name)
} }
KResultOr<size_t> DevFSLinkInode::read_bytes(off_t offset, size_t, UserOrKernelBuffer& buffer, FileDescription*) const KResultOr<size_t> DevFSLinkInode::read_bytes(off_t offset, size_t, UserOrKernelBuffer& buffer, FileDescription*) const
{ {
Locker locker(m_lock); Locker locker(m_inode_lock);
VERIFY(offset == 0); VERIFY(offset == 0);
VERIFY(!m_link.is_null()); VERIFY(!m_link.is_null());
if (!buffer.write(((const u8*)m_link.substring_view(0).characters_without_null_termination()) + offset, m_link.length())) if (!buffer.write(((const u8*)m_link.substring_view(0).characters_without_null_termination()) + offset, m_link.length()))
@ -162,7 +162,7 @@ KResultOr<size_t> DevFSLinkInode::read_bytes(off_t offset, size_t, UserOrKernelB
} }
InodeMetadata DevFSLinkInode::metadata() const InodeMetadata DevFSLinkInode::metadata() const
{ {
Locker locker(m_lock); 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;
@ -174,7 +174,7 @@ InodeMetadata DevFSLinkInode::metadata() const
} }
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_lock); Locker locker(m_inode_lock);
VERIFY(offset == 0); VERIFY(offset == 0);
VERIFY(buffer.is_kernel_buffer()); VERIFY(buffer.is_kernel_buffer());
m_link = buffer.copy_into_string(count); m_link = buffer.copy_into_string(count);
@ -190,7 +190,7 @@ DevFSDirectoryInode::~DevFSDirectoryInode()
} }
InodeMetadata DevFSDirectoryInode::metadata() const InodeMetadata DevFSDirectoryInode::metadata() const
{ {
Locker locker(m_lock); Locker locker(m_inode_lock);
InodeMetadata metadata; InodeMetadata metadata;
metadata.inode = { fsid(), 1 }; metadata.inode = { fsid(), 1 };
metadata.mode = 0040555; metadata.mode = 0040555;
@ -202,17 +202,17 @@ 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_lock); Locker locker(m_inode_lock);
return EINVAL; return EINVAL;
} }
RefPtr<Inode> DevFSDirectoryInode::lookup(StringView) RefPtr<Inode> DevFSDirectoryInode::lookup(StringView)
{ {
Locker locker(m_lock); 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_lock); Locker locker(m_inode_lock);
return m_devices.size(); return m_devices.size();
} }
@ -335,7 +335,7 @@ DevFSDeviceInode::~DevFSDeviceInode()
} }
KResult DevFSDeviceInode::chown(uid_t uid, gid_t gid) KResult DevFSDeviceInode::chown(uid_t uid, gid_t gid)
{ {
Locker locker(m_lock); Locker locker(m_inode_lock);
m_uid = uid; m_uid = uid;
m_gid = gid; m_gid = gid;
return KSuccess; return KSuccess;
@ -343,7 +343,7 @@ KResult DevFSDeviceInode::chown(uid_t uid, gid_t gid)
String DevFSDeviceInode::name() const String DevFSDeviceInode::name() const
{ {
Locker locker(m_lock); Locker locker(m_inode_lock);
if (m_cached_name.is_null() || m_cached_name.is_empty()) if (m_cached_name.is_null() || m_cached_name.is_empty())
const_cast<DevFSDeviceInode&>(*this).m_cached_name = m_attached_device->device_name(); const_cast<DevFSDeviceInode&>(*this).m_cached_name = m_attached_device->device_name();
return m_cached_name; return m_cached_name;
@ -351,7 +351,7 @@ String DevFSDeviceInode::name() const
KResultOr<size_t> DevFSDeviceInode::read_bytes(off_t offset, size_t count, UserOrKernelBuffer& buffer, FileDescription* description) const KResultOr<size_t> DevFSDeviceInode::read_bytes(off_t offset, size_t count, UserOrKernelBuffer& buffer, FileDescription* description) const
{ {
Locker locker(m_lock); Locker locker(m_inode_lock);
VERIFY(!!description); VERIFY(!!description);
if (!m_attached_device->can_read(*description, offset)) if (!m_attached_device->can_read(*description, offset))
return 0; return 0;
@ -363,7 +363,7 @@ KResultOr<size_t> DevFSDeviceInode::read_bytes(off_t offset, size_t count, UserO
InodeMetadata DevFSDeviceInode::metadata() const InodeMetadata DevFSDeviceInode::metadata() const
{ {
Locker locker(m_lock); Locker locker(m_inode_lock);
InodeMetadata metadata; InodeMetadata metadata;
metadata.inode = { fsid(), index() }; metadata.inode = { fsid(), index() };
metadata.mode = (m_attached_device->is_block_device() ? S_IFBLK : S_IFCHR) | m_attached_device->required_mode(); metadata.mode = (m_attached_device->is_block_device() ? S_IFBLK : S_IFCHR) | m_attached_device->required_mode();
@ -377,7 +377,7 @@ InodeMetadata DevFSDeviceInode::metadata() const
} }
KResultOr<size_t> DevFSDeviceInode::write_bytes(off_t offset, size_t count, const UserOrKernelBuffer& buffer, FileDescription* description) KResultOr<size_t> DevFSDeviceInode::write_bytes(off_t offset, size_t count, const UserOrKernelBuffer& buffer, FileDescription* description)
{ {
Locker locker(m_lock); Locker locker(m_inode_lock);
VERIFY(!!description); VERIFY(!!description);
if (!m_attached_device->can_write(*description, offset)) if (!m_attached_device->can_write(*description, offset))
return 0; return 0;
@ -393,7 +393,7 @@ DevFSPtsDirectoryInode::DevFSPtsDirectoryInode(DevFS& fs)
} }
KResult DevFSPtsDirectoryInode::traverse_as_directory(Function<bool(FileSystem::DirectoryEntryView const&)> callback) const KResult DevFSPtsDirectoryInode::traverse_as_directory(Function<bool(FileSystem::DirectoryEntryView const&)> callback) const
{ {
Locker locker(m_lock); Locker locker(m_inode_lock);
callback({ ".", identifier(), 0 }); callback({ ".", identifier(), 0 });
callback({ "..", identifier(), 0 }); callback({ "..", identifier(), 0 });
return KSuccess; return KSuccess;
@ -407,7 +407,7 @@ DevFSPtsDirectoryInode::~DevFSPtsDirectoryInode()
} }
InodeMetadata DevFSPtsDirectoryInode::metadata() const InodeMetadata DevFSPtsDirectoryInode::metadata() const
{ {
Locker locker(m_lock); Locker locker(m_inode_lock);
InodeMetadata metadata; InodeMetadata metadata;
metadata.inode = { fsid(), index() }; metadata.inode = { fsid(), index() };
metadata.mode = 0040555; metadata.mode = 0040555;

View file

@ -384,7 +384,7 @@ KResult Ext2FSInode::shrink_triply_indirect_block(BlockBasedFileSystem::BlockInd
KResult Ext2FSInode::flush_block_list() KResult Ext2FSInode::flush_block_list()
{ {
Locker locker(m_lock); Locker locker(m_inode_lock);
if (m_block_list.is_empty()) { if (m_block_list.is_empty()) {
m_raw_inode.i_blocks = 0; m_raw_inode.i_blocks = 0;
@ -752,7 +752,7 @@ u64 Ext2FSInode::size() const
InodeMetadata Ext2FSInode::metadata() const InodeMetadata Ext2FSInode::metadata() const
{ {
Locker locker(m_lock); Locker locker(m_inode_lock);
InodeMetadata metadata; InodeMetadata metadata;
metadata.inode = identifier(); metadata.inode = identifier();
metadata.size = size(); metadata.size = size();
@ -779,7 +779,7 @@ InodeMetadata Ext2FSInode::metadata() const
void Ext2FSInode::flush_metadata() void Ext2FSInode::flush_metadata()
{ {
Locker locker(m_lock); Locker locker(m_inode_lock);
dbgln_if(EXT2_DEBUG, "Ext2FSInode[{}]::flush_metadata(): Flushing inode", identifier()); dbgln_if(EXT2_DEBUG, "Ext2FSInode[{}]::flush_metadata(): Flushing inode", identifier());
fs().write_ext2_inode(index(), m_raw_inode); fs().write_ext2_inode(index(), m_raw_inode);
if (is_directory()) { if (is_directory()) {
@ -829,7 +829,7 @@ RefPtr<Inode> Ext2FS::get_inode(InodeIdentifier inode) const
KResultOr<size_t> Ext2FSInode::read_bytes(off_t offset, size_t count, UserOrKernelBuffer& buffer, FileDescription* description) const KResultOr<size_t> Ext2FSInode::read_bytes(off_t offset, size_t count, UserOrKernelBuffer& buffer, FileDescription* description) const
{ {
Locker inode_locker(m_lock); Locker inode_locker(m_inode_lock);
VERIFY(offset >= 0); VERIFY(offset >= 0);
if (m_raw_inode.i_size == 0) if (m_raw_inode.i_size == 0)
return 0; return 0;
@ -979,7 +979,7 @@ KResultOr<size_t> Ext2FSInode::write_bytes(off_t offset, size_t count, const Use
if (count == 0) if (count == 0)
return 0; return 0;
Locker inode_locker(m_lock); Locker inode_locker(m_inode_lock);
if (auto result = prepare_to_write_data(); result.is_error()) if (auto result = prepare_to_write_data(); result.is_error())
return result; return result;
@ -1106,7 +1106,7 @@ KResult Ext2FSInode::traverse_as_directory(Function<bool(FileSystem::DirectoryEn
KResult Ext2FSInode::write_directory(Vector<Ext2FSDirectoryEntry>& entries) KResult Ext2FSInode::write_directory(Vector<Ext2FSDirectoryEntry>& entries)
{ {
Locker locker(m_lock); Locker locker(m_inode_lock);
auto block_size = fs().block_size(); auto block_size = fs().block_size();
// Calculate directory size and record length of entries so that // Calculate directory size and record length of entries so that
@ -1173,7 +1173,7 @@ KResultOr<NonnullRefPtr<Inode>> Ext2FSInode::create_child(const String& name, mo
KResult Ext2FSInode::add_child(Inode& child, const StringView& name, mode_t mode) KResult Ext2FSInode::add_child(Inode& child, const StringView& name, mode_t mode)
{ {
Locker locker(m_lock); Locker locker(m_inode_lock);
VERIFY(is_directory()); VERIFY(is_directory());
if (name.length() > EXT2_NAME_LEN) if (name.length() > EXT2_NAME_LEN)
@ -1219,7 +1219,7 @@ KResult Ext2FSInode::add_child(Inode& child, const StringView& name, mode_t mode
KResult Ext2FSInode::remove_child(const StringView& name) KResult Ext2FSInode::remove_child(const StringView& name)
{ {
Locker locker(m_lock); Locker locker(m_inode_lock);
dbgln_if(EXT2_DEBUG, "Ext2FSInode[{}]::remove_child(): Removing '{}'", identifier(), name); dbgln_if(EXT2_DEBUG, "Ext2FSInode[{}]::remove_child(): Removing '{}'", identifier(), name);
VERIFY(is_directory()); VERIFY(is_directory());
@ -1599,7 +1599,7 @@ KResultOr<NonnullRefPtr<Inode>> Ext2FS::create_inode(Ext2FSInode& parent_inode,
KResult Ext2FSInode::populate_lookup_cache() const KResult Ext2FSInode::populate_lookup_cache() const
{ {
Locker locker(m_lock); Locker locker(m_inode_lock);
if (!m_lookup_cache.is_empty()) if (!m_lookup_cache.is_empty())
return KSuccess; return KSuccess;
HashMap<String, InodeIndex> children; HashMap<String, InodeIndex> children;
@ -1626,7 +1626,7 @@ RefPtr<Inode> Ext2FSInode::lookup(StringView name)
InodeIndex inode_index; InodeIndex inode_index;
{ {
Locker locker(m_lock); Locker locker(m_inode_lock);
auto it = m_lookup_cache.find(name.hash(), [&](auto& entry) { return entry.key == name; }); auto it = m_lookup_cache.find(name.hash(), [&](auto& entry) { return entry.key == name; });
if (it == m_lookup_cache.end()) { if (it == m_lookup_cache.end()) {
dbgln_if(EXT2_DEBUG, "Ext2FSInode[{}]:lookup(): '{}' not found", identifier(), name); dbgln_if(EXT2_DEBUG, "Ext2FSInode[{}]:lookup(): '{}' not found", identifier(), name);
@ -1644,7 +1644,7 @@ void Ext2FSInode::one_ref_left()
KResult Ext2FSInode::set_atime(time_t t) KResult Ext2FSInode::set_atime(time_t t)
{ {
Locker locker(m_lock); Locker locker(m_inode_lock);
if (fs().is_readonly()) if (fs().is_readonly())
return EROFS; return EROFS;
m_raw_inode.i_atime = t; m_raw_inode.i_atime = t;
@ -1654,7 +1654,7 @@ KResult Ext2FSInode::set_atime(time_t t)
KResult Ext2FSInode::set_ctime(time_t t) KResult Ext2FSInode::set_ctime(time_t t)
{ {
Locker locker(m_lock); Locker locker(m_inode_lock);
if (fs().is_readonly()) if (fs().is_readonly())
return EROFS; return EROFS;
m_raw_inode.i_ctime = t; m_raw_inode.i_ctime = t;
@ -1664,7 +1664,7 @@ KResult Ext2FSInode::set_ctime(time_t t)
KResult Ext2FSInode::set_mtime(time_t t) KResult Ext2FSInode::set_mtime(time_t t)
{ {
Locker locker(m_lock); Locker locker(m_inode_lock);
if (fs().is_readonly()) if (fs().is_readonly())
return EROFS; return EROFS;
m_raw_inode.i_mtime = t; m_raw_inode.i_mtime = t;
@ -1674,7 +1674,7 @@ KResult Ext2FSInode::set_mtime(time_t t)
KResult Ext2FSInode::increment_link_count() KResult Ext2FSInode::increment_link_count()
{ {
Locker locker(m_lock); Locker locker(m_inode_lock);
if (fs().is_readonly()) if (fs().is_readonly())
return EROFS; return EROFS;
constexpr size_t max_link_count = 65535; constexpr size_t max_link_count = 65535;
@ -1687,7 +1687,7 @@ KResult Ext2FSInode::increment_link_count()
KResult Ext2FSInode::decrement_link_count() KResult Ext2FSInode::decrement_link_count()
{ {
Locker locker(m_lock); Locker locker(m_inode_lock);
if (fs().is_readonly()) if (fs().is_readonly())
return EROFS; return EROFS;
VERIFY(m_raw_inode.i_links_count); VERIFY(m_raw_inode.i_links_count);
@ -1712,7 +1712,7 @@ void Ext2FS::uncache_inode(InodeIndex index)
KResultOr<size_t> Ext2FSInode::directory_entry_count() const KResultOr<size_t> Ext2FSInode::directory_entry_count() const
{ {
VERIFY(is_directory()); VERIFY(is_directory());
Locker locker(m_lock); Locker locker(m_inode_lock);
if (auto result = populate_lookup_cache(); result.is_error()) if (auto result = populate_lookup_cache(); result.is_error())
return KResultOr<size_t>(result); return KResultOr<size_t>(result);
return m_lookup_cache.size(); return m_lookup_cache.size();
@ -1720,7 +1720,7 @@ KResultOr<size_t> Ext2FSInode::directory_entry_count() const
KResult Ext2FSInode::chmod(mode_t mode) KResult Ext2FSInode::chmod(mode_t mode)
{ {
Locker locker(m_lock); Locker locker(m_inode_lock);
if (m_raw_inode.i_mode == mode) if (m_raw_inode.i_mode == mode)
return KSuccess; return KSuccess;
m_raw_inode.i_mode = mode; m_raw_inode.i_mode = mode;
@ -1730,7 +1730,7 @@ KResult Ext2FSInode::chmod(mode_t mode)
KResult Ext2FSInode::chown(uid_t uid, gid_t gid) KResult Ext2FSInode::chown(uid_t uid, gid_t gid)
{ {
Locker locker(m_lock); Locker locker(m_inode_lock);
if (m_raw_inode.i_uid == uid && m_raw_inode.i_gid == gid) if (m_raw_inode.i_uid == uid && m_raw_inode.i_gid == gid)
return KSuccess; return KSuccess;
m_raw_inode.i_uid = uid; m_raw_inode.i_uid = uid;
@ -1741,7 +1741,7 @@ KResult Ext2FSInode::chown(uid_t uid, gid_t gid)
KResult Ext2FSInode::truncate(u64 size) KResult Ext2FSInode::truncate(u64 size)
{ {
Locker locker(m_lock); Locker locker(m_inode_lock);
if (static_cast<u64>(m_raw_inode.i_size) == size) if (static_cast<u64>(m_raw_inode.i_size) == size)
return KSuccess; return KSuccess;
if (auto result = resize(size); result.is_error()) if (auto result = resize(size); result.is_error())
@ -1752,7 +1752,7 @@ KResult Ext2FSInode::truncate(u64 size)
KResultOr<int> Ext2FSInode::get_block_address(int index) KResultOr<int> Ext2FSInode::get_block_address(int index)
{ {
Locker locker(m_lock); Locker locker(m_inode_lock);
if (m_block_list.is_empty()) if (m_block_list.is_empty())
m_block_list = compute_block_list(); m_block_list = compute_block_list();

View file

@ -109,7 +109,7 @@ Inode::~Inode()
void Inode::will_be_destroyed() void Inode::will_be_destroyed()
{ {
Locker locker(m_lock); Locker locker(m_inode_lock);
if (m_metadata_dirty) if (m_metadata_dirty)
flush_metadata(); flush_metadata();
} }
@ -141,13 +141,13 @@ KResult Inode::decrement_link_count()
void Inode::set_shared_vmobject(SharedInodeVMObject& vmobject) void Inode::set_shared_vmobject(SharedInodeVMObject& vmobject)
{ {
Locker locker(m_lock); Locker locker(m_inode_lock);
m_shared_vmobject = vmobject; m_shared_vmobject = vmobject;
} }
bool Inode::bind_socket(LocalSocket& socket) bool Inode::bind_socket(LocalSocket& socket)
{ {
Locker locker(m_lock); Locker locker(m_inode_lock);
if (m_socket) if (m_socket)
return false; return false;
m_socket = socket; m_socket = socket;
@ -156,7 +156,7 @@ bool Inode::bind_socket(LocalSocket& socket)
bool Inode::unbind_socket() bool Inode::unbind_socket()
{ {
Locker locker(m_lock); Locker locker(m_inode_lock);
if (!m_socket) if (!m_socket)
return false; return false;
m_socket = nullptr; m_socket = nullptr;
@ -165,21 +165,21 @@ bool Inode::unbind_socket()
void Inode::register_watcher(Badge<InodeWatcher>, InodeWatcher& watcher) void Inode::register_watcher(Badge<InodeWatcher>, InodeWatcher& watcher)
{ {
Locker locker(m_lock); Locker locker(m_inode_lock);
VERIFY(!m_watchers.contains(&watcher)); VERIFY(!m_watchers.contains(&watcher));
m_watchers.set(&watcher); m_watchers.set(&watcher);
} }
void Inode::unregister_watcher(Badge<InodeWatcher>, InodeWatcher& watcher) void Inode::unregister_watcher(Badge<InodeWatcher>, InodeWatcher& watcher)
{ {
Locker locker(m_lock); Locker locker(m_inode_lock);
VERIFY(m_watchers.contains(&watcher)); VERIFY(m_watchers.contains(&watcher));
m_watchers.remove(&watcher); m_watchers.remove(&watcher);
} }
NonnullRefPtr<FIFO> Inode::fifo() NonnullRefPtr<FIFO> Inode::fifo()
{ {
Locker locker(m_lock); Locker locker(m_inode_lock);
VERIFY(metadata().is_fifo()); VERIFY(metadata().is_fifo());
// FIXME: Release m_fifo when it is closed by all readers and writers // FIXME: Release m_fifo when it is closed by all readers and writers
@ -192,7 +192,7 @@ NonnullRefPtr<FIFO> Inode::fifo()
void Inode::set_metadata_dirty(bool metadata_dirty) void Inode::set_metadata_dirty(bool metadata_dirty)
{ {
Locker locker(m_lock); Locker locker(m_inode_lock);
if (metadata_dirty) { if (metadata_dirty) {
// Sanity check. // Sanity check.
@ -214,7 +214,7 @@ void Inode::set_metadata_dirty(bool metadata_dirty)
void Inode::did_add_child(InodeIdentifier const&, String const& name) void Inode::did_add_child(InodeIdentifier const&, String const& name)
{ {
Locker locker(m_lock); Locker locker(m_inode_lock);
for (auto& watcher : m_watchers) { for (auto& watcher : m_watchers) {
watcher->notify_inode_event({}, identifier(), InodeWatcherEvent::Type::ChildCreated, name); watcher->notify_inode_event({}, identifier(), InodeWatcherEvent::Type::ChildCreated, name);
@ -223,7 +223,7 @@ void Inode::did_add_child(InodeIdentifier const&, String const& name)
void Inode::did_remove_child(InodeIdentifier const&, String const& name) void Inode::did_remove_child(InodeIdentifier const&, String const& name)
{ {
Locker locker(m_lock); Locker locker(m_inode_lock);
if (name == "." || name == "..") { if (name == "." || name == "..") {
// These are just aliases and are not interesting to userspace. // These are just aliases and are not interesting to userspace.
@ -237,7 +237,7 @@ void Inode::did_remove_child(InodeIdentifier const&, String const& name)
void Inode::did_modify_contents() void Inode::did_modify_contents()
{ {
Locker locker(m_lock); Locker locker(m_inode_lock);
for (auto& watcher : m_watchers) { for (auto& watcher : m_watchers) {
watcher->notify_inode_event({}, identifier(), InodeWatcherEvent::Type::ContentModified); watcher->notify_inode_event({}, identifier(), InodeWatcherEvent::Type::ContentModified);
} }
@ -245,7 +245,7 @@ void Inode::did_modify_contents()
void Inode::did_delete_self() void Inode::did_delete_self()
{ {
Locker locker(m_lock); Locker locker(m_inode_lock);
for (auto& watcher : m_watchers) { for (auto& watcher : m_watchers) {
watcher->notify_inode_event({}, identifier(), InodeWatcherEvent::Type::Deleted); watcher->notify_inode_event({}, identifier(), InodeWatcherEvent::Type::Deleted);
} }
@ -255,7 +255,7 @@ KResult Inode::prepare_to_write_data()
{ {
// FIXME: It's a poor design that filesystems are expected to call this before writing out data. // FIXME: It's a poor design that filesystems are expected to call this before writing out data.
// We should funnel everything through an interface at the VirtualFileSystem layer so this can happen from a single place. // We should funnel everything through an interface at the VirtualFileSystem layer so this can happen from a single place.
Locker locker(m_lock); Locker locker(m_inode_lock);
if (fs().is_readonly()) if (fs().is_readonly())
return EROFS; return EROFS;
auto metadata = this->metadata(); auto metadata = this->metadata();
@ -268,7 +268,7 @@ KResult Inode::prepare_to_write_data()
RefPtr<SharedInodeVMObject> Inode::shared_vmobject() const RefPtr<SharedInodeVMObject> Inode::shared_vmobject() const
{ {
Locker locker(m_lock); Locker locker(m_inode_lock);
return m_shared_vmobject.strong_ref(); return m_shared_vmobject.strong_ref();
} }

View file

@ -108,7 +108,7 @@ protected:
void did_modify_contents(); void did_modify_contents();
void did_delete_self(); void did_delete_self();
mutable Mutex m_lock { "Inode" }; mutable Mutex m_inode_lock { "Inode" };
private: private:
FileSystem& m_file_system; FileSystem& m_file_system;

View file

@ -698,7 +698,7 @@ KResult Plan9FSInode::ensure_open_for_mode(int mode)
u8 p9_mode = 0; u8 p9_mode = 0;
{ {
Locker locker(m_lock); Locker locker(m_inode_lock);
// If it's already open in this mode, we're done. // If it's already open in this mode, we're done.
if ((m_open_mode & mode) == mode) if ((m_open_mode & mode) == mode)

View file

@ -138,7 +138,7 @@ RefPtr<Inode> ProcFSInode::lookup(StringView)
InodeMetadata ProcFSInode::metadata() const InodeMetadata ProcFSInode::metadata() const
{ {
Locker locker(m_lock); Locker locker(m_inode_lock);
InodeMetadata metadata; InodeMetadata metadata;
metadata.inode = { fsid(), m_associated_component->component_index() }; metadata.inode = { fsid(), m_associated_component->component_index() };
metadata.mode = m_associated_component->required_mode(); metadata.mode = m_associated_component->required_mode();
@ -209,7 +209,7 @@ ProcFSDirectoryInode::~ProcFSDirectoryInode()
} }
InodeMetadata ProcFSDirectoryInode::metadata() const InodeMetadata ProcFSDirectoryInode::metadata() const
{ {
Locker locker(m_lock); Locker locker(m_inode_lock);
InodeMetadata metadata; InodeMetadata metadata;
metadata.inode = { fsid(), m_associated_component->component_index() }; metadata.inode = { fsid(), m_associated_component->component_index() };
metadata.mode = S_IFDIR | m_associated_component->required_mode(); metadata.mode = S_IFDIR | m_associated_component->required_mode();
@ -236,7 +236,7 @@ RefPtr<Inode> ProcFSDirectoryInode::lookup(StringView name)
KResultOr<size_t> ProcFSDirectoryInode::directory_entry_count() const KResultOr<size_t> ProcFSDirectoryInode::directory_entry_count() const
{ {
Locker locker(m_lock); Locker locker(m_inode_lock);
return m_associated_component->entries_count(); return m_associated_component->entries_count();
} }
@ -251,7 +251,7 @@ ProcFSLinkInode::ProcFSLinkInode(const ProcFS& fs, const ProcFSExposedComponent&
} }
InodeMetadata ProcFSLinkInode::metadata() const InodeMetadata ProcFSLinkInode::metadata() const
{ {
Locker locker(m_lock); Locker locker(m_inode_lock);
InodeMetadata metadata; InodeMetadata metadata;
metadata.inode = { fsid(), m_associated_component->component_index() }; metadata.inode = { fsid(), m_associated_component->component_index() };
metadata.mode = S_IFLNK | m_associated_component->required_mode(); metadata.mode = S_IFLNK | m_associated_component->required_mode();

View file

@ -110,7 +110,7 @@ RefPtr<Inode> SysFSInode::lookup(StringView)
InodeMetadata SysFSInode::metadata() const InodeMetadata SysFSInode::metadata() const
{ {
Locker locker(m_lock); Locker locker(m_inode_lock);
InodeMetadata metadata; InodeMetadata metadata;
metadata.inode = { fsid(), m_associated_component->component_index() }; metadata.inode = { fsid(), m_associated_component->component_index() };
metadata.mode = S_IFREG | S_IRUSR | S_IRGRP | S_IROTH; metadata.mode = S_IFREG | S_IRUSR | S_IRGRP | S_IROTH;
@ -181,7 +181,7 @@ SysFSDirectoryInode::~SysFSDirectoryInode()
} }
InodeMetadata SysFSDirectoryInode::metadata() const InodeMetadata SysFSDirectoryInode::metadata() const
{ {
Locker locker(m_lock); Locker locker(m_inode_lock);
InodeMetadata metadata; InodeMetadata metadata;
metadata.inode = { fsid(), m_associated_component->component_index() }; metadata.inode = { fsid(), m_associated_component->component_index() };
metadata.mode = S_IFDIR | S_IRUSR | S_IRGRP | S_IROTH | S_IXOTH; metadata.mode = S_IFDIR | S_IRUSR | S_IRGRP | S_IROTH | S_IXOTH;
@ -208,7 +208,7 @@ RefPtr<Inode> SysFSDirectoryInode::lookup(StringView name)
KResultOr<size_t> SysFSDirectoryInode::directory_entry_count() const KResultOr<size_t> SysFSDirectoryInode::directory_entry_count() const
{ {
Locker locker(m_lock); Locker locker(m_inode_lock);
return m_associated_component->entries_count(); return m_associated_component->entries_count();
} }

View file

@ -105,14 +105,14 @@ RefPtr<TmpFSInode> TmpFSInode::create_root(TmpFS& fs)
InodeMetadata TmpFSInode::metadata() const InodeMetadata TmpFSInode::metadata() const
{ {
Locker locker(m_lock, Mutex::Mode::Shared); Locker locker(m_inode_lock, Mutex::Mode::Shared);
return m_metadata; return m_metadata;
} }
KResult TmpFSInode::traverse_as_directory(Function<bool(FileSystem::DirectoryEntryView const&)> callback) const KResult TmpFSInode::traverse_as_directory(Function<bool(FileSystem::DirectoryEntryView const&)> callback) const
{ {
Locker locker(m_lock, Mutex::Mode::Shared); Locker locker(m_inode_lock, Mutex::Mode::Shared);
if (!is_directory()) if (!is_directory())
return ENOTDIR; return ENOTDIR;
@ -129,7 +129,7 @@ KResult TmpFSInode::traverse_as_directory(Function<bool(FileSystem::DirectoryEnt
KResultOr<size_t> TmpFSInode::read_bytes(off_t offset, size_t size, UserOrKernelBuffer& buffer, FileDescription*) const KResultOr<size_t> TmpFSInode::read_bytes(off_t offset, size_t size, UserOrKernelBuffer& buffer, FileDescription*) const
{ {
Locker locker(m_lock, Mutex::Mode::Shared); Locker locker(m_inode_lock, Mutex::Mode::Shared);
VERIFY(!is_directory()); VERIFY(!is_directory());
VERIFY(offset >= 0); VERIFY(offset >= 0);
@ -149,7 +149,7 @@ KResultOr<size_t> TmpFSInode::read_bytes(off_t offset, size_t size, UserOrKernel
KResultOr<size_t> TmpFSInode::write_bytes(off_t offset, size_t size, const UserOrKernelBuffer& buffer, FileDescription*) KResultOr<size_t> TmpFSInode::write_bytes(off_t offset, size_t size, const UserOrKernelBuffer& buffer, FileDescription*)
{ {
Locker locker(m_lock); Locker locker(m_inode_lock);
VERIFY(!is_directory()); VERIFY(!is_directory());
VERIFY(offset >= 0); VERIFY(offset >= 0);
@ -198,7 +198,7 @@ KResultOr<size_t> TmpFSInode::write_bytes(off_t offset, size_t size, const UserO
RefPtr<Inode> TmpFSInode::lookup(StringView name) RefPtr<Inode> TmpFSInode::lookup(StringView name)
{ {
Locker locker(m_lock, Mutex::Mode::Shared); Locker locker(m_inode_lock, Mutex::Mode::Shared);
VERIFY(is_directory()); VERIFY(is_directory());
if (name == ".") if (name == ".")
@ -214,7 +214,7 @@ RefPtr<Inode> TmpFSInode::lookup(StringView name)
KResultOr<size_t> TmpFSInode::directory_entry_count() const KResultOr<size_t> TmpFSInode::directory_entry_count() const
{ {
Locker locker(m_lock, Mutex::Mode::Shared); Locker locker(m_inode_lock, Mutex::Mode::Shared);
VERIFY(is_directory()); VERIFY(is_directory());
return 2 + m_children.size(); return 2 + m_children.size();
} }
@ -237,7 +237,7 @@ void TmpFSInode::flush_metadata()
KResult TmpFSInode::chmod(mode_t mode) KResult TmpFSInode::chmod(mode_t mode)
{ {
Locker locker(m_lock); Locker locker(m_inode_lock);
m_metadata.mode = mode; m_metadata.mode = mode;
notify_watchers(); notify_watchers();
@ -246,7 +246,7 @@ KResult TmpFSInode::chmod(mode_t mode)
KResult TmpFSInode::chown(uid_t uid, gid_t gid) KResult TmpFSInode::chown(uid_t uid, gid_t gid)
{ {
Locker locker(m_lock); Locker locker(m_inode_lock);
m_metadata.uid = uid; m_metadata.uid = uid;
m_metadata.gid = gid; m_metadata.gid = gid;
@ -256,7 +256,7 @@ KResult TmpFSInode::chown(uid_t uid, gid_t gid)
KResultOr<NonnullRefPtr<Inode>> TmpFSInode::create_child(const String& name, mode_t mode, dev_t dev, uid_t uid, gid_t gid) KResultOr<NonnullRefPtr<Inode>> TmpFSInode::create_child(const String& name, mode_t mode, dev_t dev, uid_t uid, gid_t gid)
{ {
Locker locker(m_lock); Locker locker(m_inode_lock);
// TODO: Support creating devices on TmpFS. // TODO: Support creating devices on TmpFS.
if (dev != 0) if (dev != 0)
@ -283,7 +283,7 @@ KResultOr<NonnullRefPtr<Inode>> TmpFSInode::create_child(const String& name, mod
KResult TmpFSInode::add_child(Inode& child, const StringView& name, mode_t) KResult TmpFSInode::add_child(Inode& child, const StringView& name, mode_t)
{ {
Locker locker(m_lock); Locker locker(m_inode_lock);
VERIFY(is_directory()); VERIFY(is_directory());
VERIFY(child.fsid() == fsid()); VERIFY(child.fsid() == fsid());
@ -297,7 +297,7 @@ KResult TmpFSInode::add_child(Inode& child, const StringView& name, mode_t)
KResult TmpFSInode::remove_child(const StringView& name) KResult TmpFSInode::remove_child(const StringView& name)
{ {
Locker locker(m_lock); Locker locker(m_inode_lock);
VERIFY(is_directory()); VERIFY(is_directory());
if (name == "." || name == "..") if (name == "." || name == "..")
@ -315,7 +315,7 @@ KResult TmpFSInode::remove_child(const StringView& name)
KResult TmpFSInode::truncate(u64 size) KResult TmpFSInode::truncate(u64 size)
{ {
Locker locker(m_lock); Locker locker(m_inode_lock);
VERIFY(!is_directory()); VERIFY(!is_directory());
if (size == 0) if (size == 0)
@ -345,7 +345,7 @@ KResult TmpFSInode::truncate(u64 size)
KResult TmpFSInode::set_atime(time_t time) KResult TmpFSInode::set_atime(time_t time)
{ {
Locker locker(m_lock); Locker locker(m_inode_lock);
m_metadata.atime = time; m_metadata.atime = time;
set_metadata_dirty(true); set_metadata_dirty(true);
@ -355,7 +355,7 @@ KResult TmpFSInode::set_atime(time_t time)
KResult TmpFSInode::set_ctime(time_t time) KResult TmpFSInode::set_ctime(time_t time)
{ {
Locker locker(m_lock); Locker locker(m_inode_lock);
m_metadata.ctime = time; m_metadata.ctime = time;
notify_watchers(); notify_watchers();
@ -364,7 +364,7 @@ KResult TmpFSInode::set_ctime(time_t time)
KResult TmpFSInode::set_mtime(time_t t) KResult TmpFSInode::set_mtime(time_t t)
{ {
Locker locker(m_lock); Locker locker(m_inode_lock);
m_metadata.mtime = t; m_metadata.mtime = t;
notify_watchers(); notify_watchers();