From: Al Viro Date: Mon, 13 Feb 2012 02:46:49 +0000 (-0500) Subject: ... and the same failure exits cleanup for ocfs2 X-Git-Tag: v2.6.39-400.9.0~339^2~11 X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=04d286c89219cf21b2035b0ecbf303831df91796;p=users%2Fjedix%2Flinux-maple.git ... and the same failure exits cleanup for ocfs2 Signed-off-by: Al Viro (cherry picked from commit be0d93f0aa5682a24a2a9ec0dd26fffaad608cce) Signed-off-by: Xiaowei.Hu --- diff --git a/fs/ocfs2/super.c b/fs/ocfs2/super.c index f13c1429a1c4..9e666bf450a6 100644 --- a/fs/ocfs2/super.c +++ b/fs/ocfs2/super.c @@ -1161,12 +1161,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); @@ -1175,6 +1175,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; @@ -1227,9 +1228,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);