Squashfs: fix breakage when page size > metadata block size
authorDoug Chapman <doug.chapman@hp.com>
Wed, 13 May 2009 01:56:39 +0000 (02:56 +0100)
committerPhillip Lougher <phillip@lougher.demon.co.uk>
Wed, 13 May 2009 01:56:39 +0000 (02:56 +0100)
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>

fs/squashfs/cache.c

index 1c4739e..40c98fa 100644 (file)
@@ -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);