Commit ca85c078 authored by Al Viro's avatar Al Viro

minixfs: switch to d_make_root()

Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
parent 68acb8e6
...@@ -254,14 +254,6 @@ static int minix_fill_super(struct super_block *s, void *data, int silent) ...@@ -254,14 +254,6 @@ static int minix_fill_super(struct super_block *s, void *data, int silent)
minix_set_bit(0,sbi->s_imap[0]->b_data); minix_set_bit(0,sbi->s_imap[0]->b_data);
minix_set_bit(0,sbi->s_zmap[0]->b_data); minix_set_bit(0,sbi->s_zmap[0]->b_data);
/* set up enough so that it can read an inode */
s->s_op = &minix_sops;
root_inode = minix_iget(s, MINIX_ROOT_INO);
if (IS_ERR(root_inode)) {
ret = PTR_ERR(root_inode);
goto out_no_root;
}
/* Apparently minix can create filesystems that allocate more blocks for /* Apparently minix can create filesystems that allocate more blocks for
* the bitmaps than needed. We simply ignore that, but verify it didn't * the bitmaps than needed. We simply ignore that, but verify it didn't
* create one with not enough blocks and bail out if so. * create one with not enough blocks and bail out if so.
...@@ -270,7 +262,7 @@ static int minix_fill_super(struct super_block *s, void *data, int silent) ...@@ -270,7 +262,7 @@ static int minix_fill_super(struct super_block *s, void *data, int silent)
if (sbi->s_imap_blocks < block) { if (sbi->s_imap_blocks < block) {
printk("MINIX-fs: file system does not have enough " printk("MINIX-fs: file system does not have enough "
"imap blocks allocated. Refusing to mount\n"); "imap blocks allocated. Refusing to mount\n");
goto out_iput; goto out_no_bitmap;
} }
block = minix_blocks_needed( block = minix_blocks_needed(
...@@ -279,13 +271,21 @@ static int minix_fill_super(struct super_block *s, void *data, int silent) ...@@ -279,13 +271,21 @@ static int minix_fill_super(struct super_block *s, void *data, int silent)
if (sbi->s_zmap_blocks < block) { if (sbi->s_zmap_blocks < block) {
printk("MINIX-fs: file system does not have enough " printk("MINIX-fs: file system does not have enough "
"zmap blocks allocated. Refusing to mount.\n"); "zmap blocks allocated. Refusing to mount.\n");
goto out_iput; goto out_no_bitmap;
}
/* set up enough so that it can read an inode */
s->s_op = &minix_sops;
root_inode = minix_iget(s, MINIX_ROOT_INO);
if (IS_ERR(root_inode)) {
ret = PTR_ERR(root_inode);
goto out_no_root;
} }
ret = -ENOMEM; ret = -ENOMEM;
s->s_root = d_alloc_root(root_inode); s->s_root = d_make_root(root_inode);
if (!s->s_root) if (!s->s_root)
goto out_iput; goto out_no_root;
if (!(s->s_flags & MS_RDONLY)) { if (!(s->s_flags & MS_RDONLY)) {
if (sbi->s_version != MINIX_V3) /* s_state is now out from V3 sb */ if (sbi->s_version != MINIX_V3) /* s_state is now out from V3 sb */
...@@ -301,10 +301,6 @@ static int minix_fill_super(struct super_block *s, void *data, int silent) ...@@ -301,10 +301,6 @@ static int minix_fill_super(struct super_block *s, void *data, int silent)
return 0; return 0;
out_iput:
iput(root_inode);
goto out_freemap;
out_no_root: out_no_root:
if (!silent) if (!silent)
printk("MINIX-fs: get root inode failed\n"); printk("MINIX-fs: get root inode failed\n");
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment