summaryrefslogtreecommitdiff
path: root/fs/logfs/super.c
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2010-05-15 16:03:15 (GMT)
committerLinus Torvalds <torvalds@linux-foundation.org>2010-05-15 16:03:15 (GMT)
commit3f8bf8f0fd79410fbcbf9dd9910dbc9d4882c94f (patch)
tree86792764365ca7b40a21e5eb8fc4f7b355088535 /fs/logfs/super.c
parentc28f3f8660697d03afbdb581781b94ff6222a585 (diff)
parent684bdc7ff95e0c1d4b0bcf236491840b55a54189 (diff)
downloadlinux-fsl-qoriq-3f8bf8f0fd79410fbcbf9dd9910dbc9d4882c94f.tar.xz
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6: JFS: Free sbi memory in error path fs/sysv: dereferencing ERR_PTR() Fix double-free in logfs Fix the regression created by "set S_DEAD on unlink()..." commit
Diffstat (limited to 'fs/logfs/super.c')
-rw-r--r--fs/logfs/super.c14
1 files changed, 7 insertions, 7 deletions
diff --git a/fs/logfs/super.c b/fs/logfs/super.c
index 5866ee6..d7c23ed 100644
--- a/fs/logfs/super.c
+++ b/fs/logfs/super.c
@@ -333,27 +333,27 @@ static int logfs_get_sb_final(struct super_block *sb, struct vfsmount *mnt)
goto fail;
sb->s_root = d_alloc_root(rootdir);
- if (!sb->s_root)
- goto fail2;
+ if (!sb->s_root) {
+ iput(rootdir);
+ goto fail;
+ }
super->s_erase_page = alloc_pages(GFP_KERNEL, 0);
if (!super->s_erase_page)
- goto fail2;
+ goto fail;
memset(page_address(super->s_erase_page), 0xFF, PAGE_SIZE);
/* FIXME: check for read-only mounts */
err = logfs_make_writeable(sb);
if (err)
- goto fail3;
+ goto fail1;
log_super("LogFS: Finished mounting\n");
simple_set_mnt(mnt, sb);
return 0;
-fail3:
+fail1:
__free_page(super->s_erase_page);
-fail2:
- iput(rootdir);
fail:
iput(logfs_super(sb)->s_master_inode);
return -EIO;