diff --git a/fs/ext4/inode.c b/fs/ext4/inode.c index 60a26f3a6f8bd3e2ac5db8cfc220538630b7de6a..9760ba09275e69db9e304cedd395709b3e8066c6 100644 --- a/fs/ext4/inode.c +++ b/fs/ext4/inode.c @@ -3583,7 +3583,8 @@ int ext4_block_truncate_page(handle_t *handle, struct page *page; int err = 0; - page = grab_cache_page(mapping, from >> PAGE_CACHE_SHIFT); + page = find_or_create_page(mapping, from >> PAGE_CACHE_SHIFT, + mapping_gfp_mask(mapping) & ~__GFP_FS); if (!page) return -EINVAL;