|
@@ -98,40 +98,6 @@ void InodeVMObject::inode_contents_changed(Badge<Inode>, off_t offset, [[maybe_u
|
|
|
for (auto& physical_page : m_physical_pages)
|
|
|
physical_page = nullptr;
|
|
|
|
|
|
-#if 0
|
|
|
- size_t current_offset = offset;
|
|
|
- size_t remaining_bytes = size;
|
|
|
- const u8* data_ptr = data;
|
|
|
-
|
|
|
- auto to_page_index = [] (size_t offset) -> size_t {
|
|
|
- return offset / PAGE_SIZE;
|
|
|
- };
|
|
|
-
|
|
|
- if (current_offset & PAGE_MASK) {
|
|
|
- size_t page_index = to_page_index(current_offset);
|
|
|
- size_t bytes_to_copy = min(size, PAGE_SIZE - (current_offset & PAGE_MASK));
|
|
|
- if (m_physical_pages[page_index]) {
|
|
|
- auto* ptr = MM.quickmap_page(*m_physical_pages[page_index]);
|
|
|
- memcpy(ptr, data_ptr, bytes_to_copy);
|
|
|
- MM.unquickmap_page();
|
|
|
- }
|
|
|
- current_offset += bytes_to_copy;
|
|
|
- data += bytes_to_copy;
|
|
|
- remaining_bytes -= bytes_to_copy;
|
|
|
- }
|
|
|
-
|
|
|
- for (size_t page_index = to_page_index(current_offset); page_index < m_physical_pages.size(); ++page_index) {
|
|
|
- size_t bytes_to_copy = PAGE_SIZE - (current_offset & PAGE_MASK);
|
|
|
- if (m_physical_pages[page_index]) {
|
|
|
- auto* ptr = MM.quickmap_page(*m_physical_pages[page_index]);
|
|
|
- memcpy(ptr, data_ptr, bytes_to_copy);
|
|
|
- MM.unquickmap_page();
|
|
|
- }
|
|
|
- current_offset += bytes_to_copy;
|
|
|
- data += bytes_to_copy;
|
|
|
- }
|
|
|
-#endif
|
|
|
-
|
|
|
// FIXME: Consolidate with inode_size_changed() so we only do a single walk.
|
|
|
for_each_region([](auto& region) {
|
|
|
region.remap();
|