diff options
Diffstat (limited to 'fs/squashfs/file_direct.c')
| -rw-r--r-- | fs/squashfs/file_direct.c | 5 | 
1 files changed, 4 insertions, 1 deletions
| diff --git a/fs/squashfs/file_direct.c b/fs/squashfs/file_direct.c index 2943b2bfae4..62a0de6632e 100644 --- a/fs/squashfs/file_direct.c +++ b/fs/squashfs/file_direct.c @@ -84,6 +84,9 @@ int squashfs_readpage_block(struct page *target_page, u64 block, int bsize)  		 */  		res = squashfs_read_cache(target_page, block, bsize, pages,  								page); +		if (res < 0) +			goto mark_errored; +  		goto out;  	} @@ -119,7 +122,7 @@ mark_errored:  	 * dealt with by the caller  	 */  	for (i = 0; i < pages; i++) { -		if (page[i] == target_page) +		if (page[i] == NULL || page[i] == target_page)  			continue;  		flush_dcache_page(page[i]);  		SetPageError(page[i]); | 
