Re: [PATCH 12/23] btrfs: add the data transaction commit logic into may_commit_transaction

Nikolay Borisov
2020-02-03T14:00:09Z

On 1.02.20 г. 0:36 ч., Josef Bacik wrote:
> Data space flushing currently unconditionally commits the transaction
> twice in a row, and the last time it checks if there's enough pinned
> extents to satisfy it's reservation before deciding to commit the
> transaction for the 3rd and final time.
>
> Encode this logic into may_commit_transaction(). In the next patch we

This is incorrect since the next patch simply introduces some states. So
this patch and the next one should be transposed. I guess even David can
do this but he needs to be explicitly aware of this.

> will pass in U64_MAX for bytes_needed the first two times, and the final
> time we will pass in the actual bytes we need so the normal logic will
> apply.
>
> This patch exists soley to make the logical changes I will make to the
> flushing state machine separate to make it easier to bisect any
> performance related regressions.
>
> Signed-off-by: Josef Bacik <josef@toxicpanda.com>

Other than the nit in the changelog this LGTM:

Reviewed-by: Nikolay Borisov <nborisov@suse.com>

<snip>