Btrfs: make sure btrfs_remove_free_space doesn't leak EAGAIN

btrfs_remove_free_space needs to make sure to set ret back to a
valid return value after setting it to EAGAIN, otherwise we return
it to the callers.

Signed-off-by: Chris Mason <chris.mason@oracle.com>
This commit is contained in:
Chris Mason 2011-10-14 06:31:20 -04:00
parent cd354ad613
commit 1eae31e918

View file

@ -1868,6 +1868,7 @@ int btrfs_remove_free_space(struct btrfs_block_group_cache *block_group,
ctl->total_bitmaps--;
}
kmem_cache_free(btrfs_free_space_cachep, info);
ret = 0;
goto out_lock;
}
@ -1875,7 +1876,8 @@ int btrfs_remove_free_space(struct btrfs_block_group_cache *block_group,
unlink_free_space(ctl, info);
info->offset += bytes;
info->bytes -= bytes;
link_free_space(ctl, info);
ret = link_free_space(ctl, info);
WARN_ON(ret);
goto out_lock;
}