diff options
author | Phillip Lougher <phillip@lougher.demon.co.uk> | 2009-05-12 21:59:26 -0400 |
---|---|---|
committer | Phillip Lougher <phillip@lougher.demon.co.uk> | 2009-05-12 21:59:26 -0400 |
commit | fffb47b80e8bb3f171ef02b90b1ae22c63983979 (patch) | |
tree | 0acc4268092856c30ed4640b42f3223593eda12f /fs/squashfs/super.c | |
parent | a37b06d589f2c687a38d07569f4ef97c650fde39 (diff) |
Squashfs: check page size is not larger than the filesystem block size
Normally the block size (by default 128K) will be larger than the
page size, unless a non-standard block size has been specified in
Mksquashfs, and the page size is larger than 4K.
Signed-off-by: Phillip Lougher <phillip@lougher.demon.co.uk>
Diffstat (limited to 'fs/squashfs/super.c')
-rw-r--r-- | fs/squashfs/super.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/fs/squashfs/super.c b/fs/squashfs/super.c index ffa6edcd2d0c..0adc624c956f 100644 --- a/fs/squashfs/super.c +++ b/fs/squashfs/super.c | |||
@@ -157,6 +157,16 @@ static int squashfs_fill_super(struct super_block *sb, void *data, int silent) | |||
157 | if (msblk->block_size > SQUASHFS_FILE_MAX_SIZE) | 157 | if (msblk->block_size > SQUASHFS_FILE_MAX_SIZE) |
158 | goto failed_mount; | 158 | goto failed_mount; |
159 | 159 | ||
160 | /* | ||
161 | * Check the system page size is not larger than the filesystem | ||
162 | * block size (by default 128K). This is currently not supported. | ||
163 | */ | ||
164 | if (PAGE_CACHE_SIZE > msblk->block_size) { | ||
165 | ERROR("Page size > filesystem block size (%d). This is " | ||
166 | "currently not supported!\n", msblk->block_size); | ||
167 | goto failed_mount; | ||
168 | } | ||
169 | |||
160 | msblk->block_log = le16_to_cpu(sblk->block_log); | 170 | msblk->block_log = le16_to_cpu(sblk->block_log); |
161 | if (msblk->block_log > SQUASHFS_FILE_MAX_LOG) | 171 | if (msblk->block_log > SQUASHFS_FILE_MAX_LOG) |
162 | goto failed_mount; | 172 | goto failed_mount; |