diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2013-12-04 08:54:00 -0800 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2013-12-04 08:54:00 -0800 |
commit | 278717909d47d86fbb20ab66dfeaa84560a2f8f2 (patch) | |
tree | 7de925d78f769331d0ccfb6ce4c10c58c2198ea6 /fs | |
parent | d644c026e6b21959af1f86b15206ae26c64c2e51 (diff) | |
parent | 6d565409503f4e1f74ac30de14e8c91a2b826cd8 (diff) |
Merge tag 'squashfs-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/pkl/squashfs-next
Pull squashfs bugfix from Phillip Lougher:
"Just a single bug fix to the new "directly decompress into the page
cache" code"
* tag 'squashfs-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/pkl/squashfs-next:
Squashfs: fix failure to unlock pages on decompress error
Diffstat (limited to 'fs')
-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 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]); |