Dennis Zhou 81b29a3bf7 btrfs: add correction to handle -1 edge case in async discard
From Dave's testing described below, it's possible to drive a file
system to have bogus values of discardable_extents and _bytes.  As
btrfs_discard_calc_delay() is the only user of discardable_extents, we
can correct here for any negative discardable_extents/discardable_bytes.

The problem is not reliably reproducible. The workload that created it
was based on linux git tree, switching between release tags, then
everytihng deleted followed by a full rebalance. At this state the
values of discardable_bytes was 16K and discardable_extents was -1,
expected values 0 and 0.

Repeating the workload again did not correct the bogus values so the
offset seems to be stable once it happens.

Reported-by: David Sterba <dsterba@suse.com>
Signed-off-by: Dennis Zhou <dennis@kernel.org>
Signed-off-by: David Sterba <dsterba@suse.com>
2020-01-20 16:41:01 +01:00
..
2019-09-27 15:10:34 -07:00
2019-09-19 09:42:37 -07:00
2019-12-09 10:36:44 -08:00
2019-07-12 17:37:53 -07:00
2019-12-11 12:25:32 -08:00
2019-11-11 09:21:59 -05:00
\n
2019-11-30 11:16:07 -08:00
2019-12-05 13:20:11 -08:00
2019-09-19 09:42:37 -07:00
2019-09-19 09:42:37 -07:00
2019-12-14 11:13:54 -08:00
2019-09-19 09:42:37 -07:00
2019-12-09 10:36:44 -08:00
2019-12-01 14:00:59 -08:00
2019-12-02 14:46:22 -08:00
2019-11-30 10:44:49 -08:00
2019-08-07 21:51:47 -04:00
2020-01-02 16:15:33 -08:00
2019-12-02 14:46:22 -08:00
2019-10-14 15:04:01 -07:00