diff --git a/kernel-src/fs/abc.c b/kernel-src/fs/abc.c index f74ff6d4..59e32ad0 100644 --- a/kernel-src/fs/abc.c +++ b/kernel-src/fs/abc.c @@ -231,7 +231,7 @@ int abc_get_block(abc_t *abc, uint64_t block, abc_block_t **ret) { } page_t *page; - int error = mm_cache_get_page(abc->backing, ROUND_DOWN(block * abc->block_size, PAGE_SIZE), &page); + int error = mm_cache_get_page(abc->backing, ROUND_DOWN(block * abc->block_size, PAGE_SIZE), 0, &page); if (error) { slab_free(abc_block_cache, abc_block); trie_free_preallocation(trie_preallocation); diff --git a/kernel-src/fs/vfs.c b/kernel-src/fs/vfs.c index 9364abd5..e3ecc6df 100644 --- a/kernel-src/fs/vfs.c +++ b/kernel-src/fs/vfs.c @@ -449,7 +449,7 @@ int vfs_write_iovec(vnode_t *node, iovec_iterator_t *iovec_iterator, size_t size if (startoffset) { // unaligned first page - err = mm_cache_get_page(node, pageoffset * PAGE_SIZE, &page); + err = mm_cache_get_page(node, pageoffset * PAGE_SIZE, 0, &page); if (err) goto leave; @@ -478,7 +478,7 @@ int vfs_write_iovec(vnode_t *node, iovec_iterator_t *iovec_iterator, size_t size for (uintmax_t offset = 0; offset < pagecount * PAGE_SIZE; offset += PAGE_SIZE) { // the other pages - err = mm_cache_get_page(node, pageoffset * PAGE_SIZE + offset, &page); + err = mm_cache_get_page(node, pageoffset * PAGE_SIZE + offset, 0, &page); if (err) goto leave; @@ -562,7 +562,7 @@ int vfs_read_iovec(vnode_t *node, iovec_iterator_t *iovec_iterator, size_t size, if (startoffset) { // unaligned first page - err = mm_cache_get_page(node, pageoffset * PAGE_SIZE, &page); + err = mm_cache_get_page(node, pageoffset * PAGE_SIZE, 0, &page); if (err) goto leave; @@ -590,7 +590,7 @@ int vfs_read_iovec(vnode_t *node, iovec_iterator_t *iovec_iterator, size_t size, for (uintmax_t offset = 0; offset < pagecount * PAGE_SIZE; offset += PAGE_SIZE) { // the other pages - err = mm_cache_get_page(node, pageoffset * PAGE_SIZE + offset, &page); + err = mm_cache_get_page(node, pageoffset * PAGE_SIZE + offset, 0, &page); if (err) goto leave; diff --git a/kernel-src/include/kernel/mm.h b/kernel-src/include/kernel/mm.h index d0ef47bf..4aac6950 100644 --- a/kernel-src/include/kernel/mm.h +++ b/kernel-src/include/kernel/mm.h @@ -99,7 +99,7 @@ void mm_init(); extern size_t mm_cache_cached_pages; void mm_cache_init(void); -int mm_cache_get_page(vnode_t *vnode, uintmax_t offset, page_t **res); +int mm_cache_get_page(vnode_t *vnode, uintmax_t offset, int flags, page_t **res); int mm_cache_take_page(page_t *page); int mm_cache_make_dirty(page_t *page); int mm_cache_truncate(vnode_t *vnode, uintmax_t offset); diff --git a/kernel-src/mm/cache.c b/kernel-src/mm/cache.c index 53f5bdba..45492ef4 100644 --- a/kernel-src/mm/cache.c +++ b/kernel-src/mm/cache.c @@ -114,7 +114,8 @@ static void remove_page(page_t *page) { --mm_cache_cached_pages; } -int mm_cache_get_page(vnode_t *vnode, uintmax_t offset, page_t **res) { +int mm_cache_get_page(vnode_t *vnode, uintmax_t offset, int flags, page_t **res) { + (void) flags; __assert(vnode->type == V_TYPE_REGULAR || vnode->type == V_TYPE_BLKDEV); __assert((offset % PAGE_SIZE) == 0); retry_err: diff --git a/kernel-src/mm/mm.c b/kernel-src/mm/mm.c index 126e83c0..ad7278ce 100644 --- a/kernel-src/mm/mm.c +++ b/kernel-src/mm/mm.c @@ -93,7 +93,7 @@ int mm_partial_page_in(mm_range_t *range, void *vaddr, page_t **resulting_page) if (cacheable) { page_t *res; - error = mm_cache_get_page(range->vnode, range->offset + map_offset, &res); + error = mm_cache_get_page(range->vnode, range->offset + map_offset, 0, &res); if (error) return error; @@ -216,7 +216,7 @@ int mm_full_page_in(mm_range_t *range, void *vaddr, page_t **resulting_page) { } page_t *vn_page; - int error = mm_cache_get_page(range->vnode, range->offset + map_offset, &vn_page); + int error = mm_cache_get_page(range->vnode, range->offset + map_offset, 0, &vn_page); if (error) return error;