ext4: fix missing ext4_unlock_group in error path
authorAneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
Tue, 4 Nov 2008 14:10:50 +0000 (09:10 -0500)
committerTheodore Ts'o <tytso@mit.edu>
Tue, 4 Nov 2008 14:10:50 +0000 (09:10 -0500)
If we try to free a block which is already freed, the code was
returning without first unlocking the group.

Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
fs/ext4/mballoc.c

index dfe17a1..444ad99 100644 (file)
@@ -4441,6 +4441,7 @@ ext4_mb_free_metadata(handle_t *handle, struct ext4_buddy *e4b,
                else if (block >= (entry->start_blk + entry->count))
                        n = &(*n)->rb_right;
                else {
+                       ext4_unlock_group(sb, group);
                        ext4_error(sb, __func__,
                            "Double free of blocks %d (%d %d)\n",
                            block, entry->start_blk, entry->count);