On 2017年12月15日 18:05, Nikolay Borisov wrote:
> Currently when enoscp_debug mount option is turned on we do not print
> any debug info in case metadata reservation failures happen. Fix this
> by adding the necessary hook in reserve_metadata_bytes.
Reviewed-by: Qu Wenruo <wqu@xxxxxxxx>
>
> Signed-off-by: Nikolay Borisov <nborisov@xxxxxxxx>
> ---
> fs/btrfs/extent-tree.c | 7 ++++++-
> 1 file changed, 6 insertions(+), 1 deletion(-)
>
> diff --git a/fs/btrfs/extent-tree.c b/fs/btrfs/extent-tree.c
> index 4497f937e8fb..7a281fc97bc5 100644
> --- a/fs/btrfs/extent-tree.c
> +++ b/fs/btrfs/extent-tree.c
> @@ -5382,10 +5382,15 @@ static int reserve_metadata_bytes(struct btrfs_root *root,
> !block_rsv_use_bytes(global_rsv, orig_bytes))
> ret = 0;
> }
> - if (ret == -ENOSPC)
> + if (ret == -ENOSPC) {
> trace_btrfs_space_reservation(fs_info, "space_info:enospc",
> block_rsv->space_info->flags,
> orig_bytes, 1);
Nothing related to this patch itself.
But btrfs_space_reservation() seems to be abused.
Every type from delalloc to enospc debug will use it.
What about splitting them into different trace events?
Thanks,
Qu
> +
> + if (btrfs_test_opt(fs_info, ENOSPC_DEBUG))
> + dump_space_info(fs_info, block_rsv->space_info,
> + orig_bytes, 0);
> + }
> return ret;
> }
>
>
Attachment:
signature.asc
Description: OpenPGP digital signature
