From dd67a4ca983a01e6715e74d25dc933517256f1b1 Mon Sep 17 00:00:00 2001 From: Al Viro Date: Sun, 12 Feb 2012 22:06:33 -0500 Subject: [PATCH] --- yaml --- r: 292329 b: refs/heads/master c: 1688f86046e5572623b2eacb685eb707fe21fb0a h: refs/heads/master i: 292327: ba82e965d43cf6a2fb634b1c7f70f7137ab798e3 v: v3 --- [refs] | 2 +- trunk/fs/fat/inode.c | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/[refs] b/[refs] index 08704fd53a3a..736166eec3c5 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: ea29c6950a0305f2af7fd4a2021a6e946ada0174 +refs/heads/master: 1688f86046e5572623b2eacb685eb707fe21fb0a diff --git a/trunk/fs/fat/inode.c b/trunk/fs/fat/inode.c index 3ab841054d53..21687e31acc0 100644 --- a/trunk/fs/fat/inode.c +++ b/trunk/fs/fat/inode.c @@ -1496,11 +1496,13 @@ int fat_fill_super(struct super_block *sb, void *data, int silent, int isvfat, root_inode->i_ino = MSDOS_ROOT_INO; root_inode->i_version = 1; error = fat_read_root(root_inode); - if (error < 0) + if (error < 0) { + iput(root_inode); goto out_fail; + } error = -ENOMEM; insert_inode_hash(root_inode); - sb->s_root = d_alloc_root(root_inode); + sb->s_root = d_make_root(root_inode); if (!sb->s_root) { fat_msg(sb, KERN_ERR, "get root inode failed"); goto out_fail; @@ -1516,8 +1518,6 @@ int fat_fill_super(struct super_block *sb, void *data, int silent, int isvfat, out_fail: if (fat_inode) iput(fat_inode); - if (root_inode) - iput(root_inode); unload_nls(sbi->nls_io); unload_nls(sbi->nls_disk); if (sbi->options.iocharset != fat_default_iocharset)