The patch titled cramfs: propagate uncompression errors has been removed from the -mm tree. Its filename was cramfs-propagate-uncompression-errors.patch This patch was dropped because an updated version will be merged The current -mm tree may be found at http://userweb.kernel.org/~akpm/mmotm/ ------------------------------------------------------ Subject: cramfs: propagate uncompression errors From: David VomLehn <dvomlehn@xxxxxxxxx> If cramfs_uncompress_block() detects an error uncompressing it will return a zero value. This patch checks the return value and propagates the error back up to the block layer. Signed-off-by: David VomLehn <dvomlehn@xxxxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> --- fs/cramfs/inode.c | 39 +++++++++++++++++++++++---------------- 1 file changed, 23 insertions(+), 16 deletions(-) diff -puN fs/cramfs/inode.c~cramfs-propagate-uncompression-errors fs/cramfs/inode.c --- a/fs/cramfs/inode.c~cramfs-propagate-uncompression-errors +++ a/fs/cramfs/inode.c @@ -475,25 +475,32 @@ static int cramfs_readpage(struct file * start_offset = *(u32 *) cramfs_read(sb, blkptr_offset-4, 4); compr_len = (*(u32 *) cramfs_read(sb, blkptr_offset, 4) - start_offset); mutex_unlock(&read_mutex); - pgdata = kmap(page); if (compr_len == 0) - ; /* hole */ - else if (compr_len > (PAGE_CACHE_SIZE << 1)) - printk(KERN_ERR "cramfs: bad compressed blocksize %u\n", compr_len); - else { - mutex_lock(&read_mutex); - bytes_filled = cramfs_uncompress_block(pgdata, - PAGE_CACHE_SIZE, - cramfs_read(sb, start_offset, compr_len), - compr_len); - mutex_unlock(&read_mutex); + goto out; /* hole */ + if (compr_len > (PAGE_CACHE_SIZE << 1)) { + printk(KERN_ERR "cramfs: bad compressed blocksize %u\n", + compr_len); + goto out; } - } else pgdata = kmap(page); - memset(pgdata + bytes_filled, 0, PAGE_CACHE_SIZE - bytes_filled); - kunmap(page); - flush_dcache_page(page); - SetPageUptodate(page); + mutex_lock(&read_mutex); + bytes_filled = cramfs_uncompress_block(pgdata, PAGE_CACHE_SIZE, + cramfs_read(sb, start_offset, compr_len), compr_len); + mutex_unlock(&read_mutex); + + if (bytes_filled == 0) { + /* Decompression error */ + ClearPageUptodate(page); + SetPageError(page); + } else { + memset(pgdata + bytes_filled, 0, + PAGE_CACHE_SIZE - bytes_filled); + flush_dcache_page(page); + SetPageUptodate(page); + } + kunmap(page); + } +out: unlock_page(page); return 0; } _ Patches currently in -mm which might be from dvomlehn@xxxxxxxxx are cramfs-propagate-uncompression-errors-v21.patch cramfs-propagate-uncompression-errors.patch -- To unsubscribe from this list: send the line "unsubscribe mm-commits" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html