mirror of
https://github.com/RGBCube/serenity
synced 2025-05-31 18:58:12 +00:00
Kernel: Call did_modify_contents()
after truncate()
Truncating a file should absolutly mark it as modified. With this change our `tail` implementation can correctly handle it.
This commit is contained in:
parent
525555181e
commit
5180e41918
3 changed files with 3 additions and 0 deletions
|
@ -1078,6 +1078,7 @@ ErrorOr<void> Ext2FSInode::truncate(u64 size)
|
||||||
return {};
|
return {};
|
||||||
TRY(resize(size));
|
TRY(resize(size));
|
||||||
set_metadata_dirty(true);
|
set_metadata_dirty(true);
|
||||||
|
did_modify_contents();
|
||||||
return {};
|
return {};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -96,6 +96,7 @@ ErrorOr<NonnullOwnPtr<KString>> InodeFile::pseudo_path(OpenFileDescription const
|
||||||
ErrorOr<void> InodeFile::truncate(u64 size)
|
ErrorOr<void> InodeFile::truncate(u64 size)
|
||||||
{
|
{
|
||||||
TRY(m_inode->truncate(size));
|
TRY(m_inode->truncate(size));
|
||||||
|
// FIXME: Make sure that the timestamps are updated by Inode::truncate for all filesystems before removing this.
|
||||||
auto truncated_at = kgettimeofday();
|
auto truncated_at = kgettimeofday();
|
||||||
TRY(m_inode->update_timestamps({}, truncated_at, truncated_at));
|
TRY(m_inode->update_timestamps({}, truncated_at, truncated_at));
|
||||||
return {};
|
return {};
|
||||||
|
|
|
@ -380,6 +380,7 @@ ErrorOr<void> RAMFSInode::truncate(u64 size)
|
||||||
}
|
}
|
||||||
m_metadata.size = size;
|
m_metadata.size = size;
|
||||||
set_metadata_dirty(true);
|
set_metadata_dirty(true);
|
||||||
|
did_modify_contents();
|
||||||
return {};
|
return {};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue