Switch to using kmalloc to allocate the minix superblock structure.
brelse(sbi->s_zmap[i]);
brelse (sbi->s_sbh);
kfree(sbi->s_imap);
+ sb->u.generic_sbp = NULL;
+ kfree(sbi);
return;
}
struct minix_super_block *ms;
int i, block;
struct inode *root_inode;
- struct minix_sb_info *sbi = minix_sb(s);
+ struct minix_sb_info *sbi;
+
+ sbi = kmalloc(sizeof(struct minix_sb_info), GFP_KERNEL);
+ if (!sbi)
+ return -ENOMEM;
+ s->u.generic_sbp = sbi;
/* N.B. These should be compile-time tests.
Unfortunately that is impossible. */
out_bad_sb:
printk("MINIX-fs: unable to read superblock\n");
out:
+ s->u.generic_sbp = NULL;
+ kfree(sbi);
return -EINVAL;
}
#define MNT_FORCE 0x00000001 /* Attempt to forcibily umount */
#define MNT_DETACH 0x00000002 /* Just detach from the tree */
-#include <linux/minix_fs_sb.h>
#include <linux/ext2_fs_sb.h>
#include <linux/ext3_fs_sb.h>
#include <linux/hpfs_fs_sb.h>
char s_id[32]; /* Informational name */
union {
- struct minix_sb_info minix_sb;
struct ext2_sb_info ext2_sb;
struct ext3_sb_info ext3_sb;
struct hpfs_sb_info hpfs_sb;
static inline struct minix_sb_info *minix_sb(struct super_block *sb)
{
- return &sb->u.minix_sb;
+ return sb->u.generic_sbp;
}
static inline struct minix_inode_info *minix_i(struct inode *inode)