X-Git-Url: http://git.agner.ch/gitweb/?a=blobdiff_plain;f=fs%2Fsquashfs%2Ffile_direct.c;h=62a0de6632e1aa3c8de599e19db3f8d7e2a383e2;hb=96b7fe0119b932ad25451d2b6357e727bbe6a309;hp=2943b2bfae482ac83d352f317af4c074ce6597ae;hpb=76ae076f99a6f4538f8d6f06be9b87ecafc00a97;p=linux-drm-fsl-dcu.git diff --git a/fs/squashfs/file_direct.c b/fs/squashfs/file_direct.c index 2943b2bfae48..62a0de6632e1 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]);