diff --git a/mm/shmem.c b/mm/shmem.c index 8a41ab86152c52384dffbb942a4c8958fe96c644..ae62bba63a244cb8b364f9fd2d9c78d02752dd9f 100644 --- a/mm/shmem.c +++ b/mm/shmem.c @@ -2661,7 +2661,12 @@ static ssize_t shmem_file_read_iter(struct kiocb *iocb, struct iov_iter *to) * Ok, we have the page, and it's up-to-date, so * now we can copy it to user space... */ - ret = copy_page_to_iter(page, offset, nr, to); +#ifdef CONFIG_UCE_KERNEL_RECOVERY + if (is_pagecache_reading_kernel_recovery_enable()) + ret = copy_page_to_iter_generic_read(page, offset, nr, to); + else + ret = copy_page_to_iter(page, offset, nr, to); +#endif retval += ret; offset += ret; index += offset >> PAGE_SHIFT;