diff options
author | Doug Chapman <doug.chapman@hp.com> | 2009-05-12 21:56:39 -0400 |
---|---|---|
committer | Phillip Lougher <phillip@lougher.demon.co.uk> | 2009-05-12 21:56:39 -0400 |
commit | a37b06d589f2c687a38d07569f4ef97c650fde39 (patch) | |
tree | 596689185fb6ca381e185815a3f3179902cab9ba /fs/squashfs/cache.c | |
parent | 1d80cac0fe44fb87b2a3d35fddd7f534ea81cd90 (diff) |
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.c | 1 |
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, | |||
252 | cache->entries = entries; | 252 | cache->entries = entries; |
253 | cache->block_size = block_size; | 253 | cache->block_size = block_size; |
254 | cache->pages = block_size >> PAGE_CACHE_SHIFT; | 254 | cache->pages = block_size >> PAGE_CACHE_SHIFT; |
255 | cache->pages = cache->pages ? cache->pages : 1; | ||
255 | cache->name = name; | 256 | cache->name = name; |
256 | cache->num_waiters = 0; | 257 | cache->num_waiters = 0; |
257 | spin_lock_init(&cache->lock); | 258 | spin_lock_init(&cache->lock); |