]> git.hungrycats.org Git - linux/commitdiff
[PATCH] struct superblock cleanup - minixfs
authorBrian Gerst <bgerst@didntduck.org>
Tue, 12 Mar 2002 04:51:25 +0000 (20:51 -0800)
committerLinus Torvalds <torvalds@home.transmeta.com>
Tue, 12 Mar 2002 04:51:25 +0000 (20:51 -0800)
Switch to using kmalloc to allocate the minix superblock structure.

fs/minix/inode.c
include/linux/fs.h
include/linux/minix_fs.h

index fba39b6bac30b9aeb2b5412365e39c99c4f78a34..50f9fa8bfbfdec042ab0c6d62981b4808edf385c 100644 (file)
@@ -70,6 +70,8 @@ static void minix_put_super(struct super_block *sb)
                brelse(sbi->s_zmap[i]);
        brelse (sbi->s_sbh);
        kfree(sbi->s_imap);
+       sb->u.generic_sbp = NULL;
+       kfree(sbi);
 
        return;
 }
@@ -170,7 +172,12 @@ static int minix_fill_super(struct super_block *s, void *data, int silent)
        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. */
@@ -313,6 +320,8 @@ out_bad_hblock:
 out_bad_sb:
        printk("MINIX-fs: unable to read superblock\n");
  out:
+       s->u.generic_sbp = NULL;
+       kfree(sbi);
        return -EINVAL;
 }
 
index 605355cdbdde28c1ecf1337624653fe5f9f4b364..6ff5a4b41490ca0a1c540858f1ae2e0b9cdcd931 100644 (file)
@@ -649,7 +649,6 @@ struct quota_mount_options
 #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>
@@ -707,7 +706,6 @@ struct super_block {
        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;
index 5953da6a02ac9fb4675606f2026fefbdeb55ec14..586b49bb61bd63b25e9acdee7c50f5d0cd554637 100644 (file)
@@ -134,7 +134,7 @@ extern struct dentry_operations minix_dentry_operations;
 
 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)