summaryrefslogtreecommitdiffstats
path: root/fs/hfsplus/super.c
diff options
context:
space:
mode:
authorAlexey Khoroshilov <khoroshilov@ispras.ru>2011-06-23 23:15:02 +0200
committerChristoph Hellwig <hch@lst.de>2011-06-30 13:38:39 +0200
commit032016a56a1e9c83646435b32e4416d499e1f1ce (patch)
tree2918b2e31c5cf65b5ea1a8acd087bfe6dd7a94b7 /fs/hfsplus/super.c
parenthfsplus: add missing call to bio_put() (diff)
downloadlinux-032016a56a1e9c83646435b32e4416d499e1f1ce.tar.xz
linux-032016a56a1e9c83646435b32e4416d499e1f1ce.zip
hfsplus: Fix double iput of the same inode in hfsplus_fill_super()
There is a misprint in resource deallocation code on error path in hfsplus_fill_super(): the sbi->alloc_file inode is iput twice, while the root inode in not iput at all. Found by Linux Driver Verification project (linuxtesting.org). Signed-off-by: Alexey Khoroshilov <khoroshilov@ispras.ru> Signed-off-by: Christoph Hellwig <hch@lst.de>
Diffstat (limited to 'fs/hfsplus/super.c')
-rw-r--r--fs/hfsplus/super.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/fs/hfsplus/super.c b/fs/hfsplus/super.c
index b49b55584c84..84a47b709f51 100644
--- a/fs/hfsplus/super.c
+++ b/fs/hfsplus/super.c
@@ -500,7 +500,7 @@ 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(sbi->alloc_file);
+ iput(root);
out_put_alloc_file:
iput(sbi->alloc_file);
out_close_cat_tree: