btrfs: dump block_rsv details when dumping space info
For enospc_debug having the block rsvs is super helpful to see if we've done something wrong. Reviewed-by: Omar Sandoval <osandov@fb.com> Signed-off-by: Josef Bacik <josef@toxicpanda.com> Reviewed-by: David Sterba <dsterba@suse.com> Signed-off-by: David Sterba <dsterba@suse.com>
This commit is contained in:
parent
d89dbefb8c
commit
b78e5616af
|
@ -8086,6 +8086,15 @@ static noinline int find_free_extent(struct btrfs_fs_info *fs_info,
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#define DUMP_BLOCK_RSV(fs_info, rsv_name) \
|
||||||
|
do { \
|
||||||
|
struct btrfs_block_rsv *__rsv = &(fs_info)->rsv_name; \
|
||||||
|
spin_lock(&__rsv->lock); \
|
||||||
|
btrfs_info(fs_info, #rsv_name ": size %llu reserved %llu", \
|
||||||
|
__rsv->size, __rsv->reserved); \
|
||||||
|
spin_unlock(&__rsv->lock); \
|
||||||
|
} while (0)
|
||||||
|
|
||||||
static void dump_space_info(struct btrfs_fs_info *fs_info,
|
static void dump_space_info(struct btrfs_fs_info *fs_info,
|
||||||
struct btrfs_space_info *info, u64 bytes,
|
struct btrfs_space_info *info, u64 bytes,
|
||||||
int dump_block_groups)
|
int dump_block_groups)
|
||||||
|
@ -8105,6 +8114,12 @@ static void dump_space_info(struct btrfs_fs_info *fs_info,
|
||||||
info->bytes_readonly);
|
info->bytes_readonly);
|
||||||
spin_unlock(&info->lock);
|
spin_unlock(&info->lock);
|
||||||
|
|
||||||
|
DUMP_BLOCK_RSV(fs_info, global_block_rsv);
|
||||||
|
DUMP_BLOCK_RSV(fs_info, trans_block_rsv);
|
||||||
|
DUMP_BLOCK_RSV(fs_info, chunk_block_rsv);
|
||||||
|
DUMP_BLOCK_RSV(fs_info, delayed_block_rsv);
|
||||||
|
DUMP_BLOCK_RSV(fs_info, delayed_refs_rsv);
|
||||||
|
|
||||||
if (!dump_block_groups)
|
if (!dump_block_groups)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue