Re: [PATCH][v2] btrfs: change how we decide to commit transactions during flushing
From: Nikolay Borisov <hidden>
Date: 2017-08-25 08:32:23
From: Nikolay Borisov <hidden>
Date: 2017-08-25 08:32:23
On 24.08.2017 17:43, Nikolay Borisov wrote:
On 22.08.2017 23:00, josef@toxicpanda.com wrote:quoted
From: Josef Bacik <redacted> Nikolay reported that generic/273 was failing currently with ENOSPC. Turns out this is because we get to the point where the outstanding reservations are greater than the pinned space on the fs. This is a mistake, previously we used the current reservation amount in may_commit_transaction, not the entire outstanding reservation amount. Fix this to find the minimum byte size needed to make progress in flushing, and pass that into may_commit_transaction. From there we can make a smarter decision on whether to commit the transaction or not. This fixes the failure in generic/273. Reported-by: Nikolay Borisov <redacted> Signed-off-by: Josef Bacik <redacted>Reviewed-and-tested-by: Nikolay Borisov [off-list ref]
For this commit we might also add:
Fixes: 957780eb2788 ("Btrfs: introduce ticketed enospc infrastructure")
Cc: stable@vger.kernel.org # 4.8