diff --git a/fs/hfsplus/btree.c b/fs/hfsplus/btree.c index de14b2b6881bb73c421bea985873848641c8e9a9..3de3bc4918b551314004bd4b76c92d2c1e9aa0a9 100644 --- a/fs/hfsplus/btree.c +++ b/fs/hfsplus/btree.c @@ -454,14 +454,15 @@ void hfs_bmap_free(struct hfs_bnode *node) nidx -= len * 8; i = node->next; - hfs_bnode_put(node); if (!i) { /* panic */; pr_crit("unable to free bnode %u. " "bmap not found!\n", node->this); + hfs_bnode_put(node); return; } + hfs_bnode_put(node); node = hfs_bnode_find(tree, i); if (IS_ERR(node)) return;