diff --git a/fs/isofs/inode.c b/fs/isofs/inode.c index 7b99f5f460be1..bd62c76fb5df8 100644 --- a/fs/isofs/inode.c +++ b/fs/isofs/inode.c @@ -948,8 +948,11 @@ static int isofs_fill_super(struct super_block *s, void *data, int silent) /* get the root dentry */ s->s_root = d_alloc_root(inode); - if (!(s->s_root)) - goto out_no_root; + if (!(s->s_root)) { + iput(inode); + error = -ENOMEM; + goto out_no_inode; + } kfree(opt.iocharset);