|
@@ -1154,12 +1154,12 @@ static int ocfs2_fill_super(struct super_block *sb, void *data, int silent)
|
|
|
}
|
|
|
|
|
|
status = ocfs2_mount_volume(sb);
|
|
|
- if (osb->root_inode)
|
|
|
- inode = igrab(osb->root_inode);
|
|
|
-
|
|
|
if (status < 0)
|
|
|
goto read_super_error;
|
|
|
|
|
|
+ if (osb->root_inode)
|
|
|
+ inode = igrab(osb->root_inode);
|
|
|
+
|
|
|
if (!inode) {
|
|
|
status = -EIO;
|
|
|
mlog_errno(status);
|
|
@@ -1168,6 +1168,7 @@ static int ocfs2_fill_super(struct super_block *sb, void *data, int silent)
|
|
|
|
|
|
root = d_alloc_root(inode);
|
|
|
if (!root) {
|
|
|
+ iput(inode);
|
|
|
status = -ENOMEM;
|
|
|
mlog_errno(status);
|
|
|
goto read_super_error;
|
|
@@ -1220,9 +1221,6 @@ static int ocfs2_fill_super(struct super_block *sb, void *data, int silent)
|
|
|
read_super_error:
|
|
|
brelse(bh);
|
|
|
|
|
|
- if (inode)
|
|
|
- iput(inode);
|
|
|
-
|
|
|
if (osb) {
|
|
|
atomic_set(&osb->vol_state, VOLUME_DISABLED);
|
|
|
wake_up(&osb->osb_mount_event);
|