summaryrefslogtreecommitdiffstats
path: root/fs/squashfs/cache.c
diff options
context:
space:
mode:
authorDoug Chapman <doug.chapman@hp.com>2009-05-13 03:56:39 +0200
committerPhillip Lougher <phillip@lougher.demon.co.uk>2009-05-13 03:56:39 +0200
commita37b06d589f2c687a38d07569f4ef97c650fde39 (patch)
tree596689185fb6ca381e185815a3f3179902cab9ba /fs/squashfs/cache.c
parentMerge branch 'for-linus' of git://repo.or.cz/cris-mirror (diff)
downloadlinux-a37b06d589f2c687a38d07569f4ef97c650fde39.tar.xz
linux-a37b06d589f2c687a38d07569f4ef97c650fde39.zip
Squashfs: fix breakage when page size > metadata block size
Squashfs is broken on any system where the page size is larger than the metadata size (8192). This is easily fixed by ensuring cache->pages is always > 0. [akpm@linux-foundation.org: coding-style fixes] Signed-off-by: Doug Chapman <doug.chapman@hp.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Phillip Lougher <phillip@lougher.demon.co.uk>
Diffstat (limited to 'fs/squashfs/cache.c')
-rw-r--r--fs/squashfs/cache.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/fs/squashfs/cache.c b/fs/squashfs/cache.c
index 1c4739e33af6..40c98fa6b5d6 100644
--- a/fs/squashfs/cache.c
+++ b/fs/squashfs/cache.c
@@ -252,6 +252,7 @@ struct squashfs_cache *squashfs_cache_init(char *name, int entries,
cache->entries = entries;
cache->block_size = block_size;
cache->pages = block_size >> PAGE_CACHE_SHIFT;
+ cache->pages = cache->pages ? cache->pages : 1;
cache->name = name;
cache->num_waiters = 0;
spin_lock_init(&cache->lock);