Skip to content

Commit

Permalink
btrfs: add WARN_ON() to check is space_info op current
Browse files Browse the repository at this point in the history
space_info's value calculation is some complex and easy to cause
bug, add WARN_ON() to help debug.

Changelog v1->v2:
 Put WARN_ON()s under the ENOSPC_DEBUG mount option.
 Suggested by: David Sterba <dsterba@suse.cz>

Signed-off-by: Zhao Lei <zhaolei@cn.fujitsu.com>
Signed-off-by: Chris Mason <clm@fb.com>
  • Loading branch information
zhaoleidd authored and masoncl committed Apr 13, 2015
1 parent c30666d commit 18d018a
Showing 1 changed file with 10 additions and 0 deletions.
10 changes: 10 additions & 0 deletions fs/btrfs/extent-tree.c
Original file line number Diff line number Diff line change
Expand Up @@ -9732,9 +9732,19 @@ int btrfs_remove_block_group(struct btrfs_trans_handle *trans,

spin_lock(&block_group->space_info->lock);
list_del_init(&block_group->ro_list);

if (btrfs_test_opt(root, ENOSPC_DEBUG)) {
WARN_ON(block_group->space_info->total_bytes
< block_group->key.offset);
WARN_ON(block_group->space_info->bytes_readonly
< block_group->key.offset);
WARN_ON(block_group->space_info->disk_total
< block_group->key.offset * factor);
}
block_group->space_info->total_bytes -= block_group->key.offset;
block_group->space_info->bytes_readonly -= block_group->key.offset;
block_group->space_info->disk_total -= block_group->key.offset * factor;

spin_unlock(&block_group->space_info->lock);

memcpy(&key, &block_group->key, sizeof(key));
Expand Down

0 comments on commit 18d018a

Please sign in to comment.