diff options
author | Jeff Garzik <jeff@garzik.org> | 2006-08-29 17:55:59 -0400 |
---|---|---|
committer | Jeff Garzik <jeff@garzik.org> | 2006-08-29 17:55:59 -0400 |
commit | b01e86fee6c821e4e003fd4e9f65453ac478a58e (patch) | |
tree | 21695e10cbe7001d2ccc8c87cee5e7a7865b1025 /fs/minix/inode.c | |
parent | e889173c2c67dc288e9b050ab066cfae151b047e (diff) | |
parent | 60d4684068ff1eec78f55b5888d0bd2d4cca1520 (diff) | |
download | talos-op-linux-b01e86fee6c821e4e003fd4e9f65453ac478a58e.tar.gz talos-op-linux-b01e86fee6c821e4e003fd4e9f65453ac478a58e.zip |
Merge /spare/repo/linux-2.6 into upstream
Diffstat (limited to 'fs/minix/inode.c')
-rw-r--r-- | fs/minix/inode.c | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/fs/minix/inode.c b/fs/minix/inode.c index 9ea91c5eeb7b..330ff9fc7cf0 100644 --- a/fs/minix/inode.c +++ b/fs/minix/inode.c @@ -204,6 +204,8 @@ static int minix_fill_super(struct super_block *s, void *data, int silent) /* * Allocate the buffer map to keep the superblock small. */ + if (sbi->s_imap_blocks == 0 || sbi->s_zmap_blocks == 0) + goto out_illegal_sb; i = (sbi->s_imap_blocks + sbi->s_zmap_blocks) * sizeof(bh); map = kmalloc(i, GFP_KERNEL); if (!map) @@ -263,7 +265,7 @@ out_no_root: out_no_bitmap: printk("MINIX-fs: bad superblock or unable to read bitmaps\n"); - out_freemap: +out_freemap: for (i = 0; i < sbi->s_imap_blocks; i++) brelse(sbi->s_imap[i]); for (i = 0; i < sbi->s_zmap_blocks; i++) @@ -276,11 +278,16 @@ out_no_map: printk("MINIX-fs: can't allocate map\n"); goto out_release; +out_illegal_sb: + if (!silent) + printk("MINIX-fs: bad superblock\n"); + goto out_release; + out_no_fs: if (!silent) printk("VFS: Can't find a Minix or Minix V2 filesystem " "on device %s\n", s->s_id); - out_release: +out_release: brelse(bh); goto out; @@ -290,7 +297,7 @@ out_bad_hblock: out_bad_sb: printk("MINIX-fs: unable to read superblock\n"); - out: +out: s->s_fs_info = NULL; kfree(sbi); return -EINVAL; |