From: Al Viro Date: Mon, 13 Feb 2012 03:07:07 +0000 (-0500) Subject: hfsplus: switch to d_make_root() X-Git-Tag: v3.4-rc1~163^2~52 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=68acb8e60d672cba0fd1d3545ba33343931c7a24;p=platform%2Fkernel%2Flinux-stable.git hfsplus: switch to d_make_root() Signed-off-by: Al Viro --- diff --git a/fs/hfsplus/super.c b/fs/hfsplus/super.c index 427682c..ceb1c28 100644 --- a/fs/hfsplus/super.c +++ b/fs/hfsplus/super.c @@ -465,6 +465,13 @@ static int hfsplus_fill_super(struct super_block *sb, void *data, int silent) goto out_put_alloc_file; } + sb->s_d_op = &hfsplus_dentry_operations; + sb->s_root = d_make_root(root); + if (!sb->s_root) { + err = -ENOMEM; + goto out_put_alloc_file; + } + str.len = sizeof(HFSP_HIDDENDIR_NAME) - 1; str.name = HFSP_HIDDENDIR_NAME; err = hfs_find_init(sbi->cat_tree, &fd); @@ -515,13 +522,6 @@ static int hfsplus_fill_super(struct super_block *sb, void *data, int silent) } } - sb->s_d_op = &hfsplus_dentry_operations; - sb->s_root = d_alloc_root(root); - if (!sb->s_root) { - err = -ENOMEM; - goto out_put_hidden_dir; - } - unload_nls(sbi->nls); sbi->nls = nls; return 0; @@ -529,7 +529,8 @@ static int hfsplus_fill_super(struct super_block *sb, void *data, int silent) out_put_hidden_dir: iput(sbi->hidden_dir); out_put_root: - iput(root); + dput(sb->s_root); + sb->s_root = NULL; out_put_alloc_file: iput(sbi->alloc_file); out_close_cat_tree: