[PATCH 0/3][v2] clean up how we mark block groups read only

Josef Bacik
2020-01-17T14:07:45Z

v1->v2:
- Rebased onto misc-next.
- Fixed a bug where we weren't adjusting space_info->bytes_readonly in the force
case.
- Dropped the RFC, these are pretty important fixes.

-------------- Original email ----------------------
Qu has been looking into ENOSPC during relocation and noticed some weirdness
with inc_block_group_ro. The problem is this code hasn't changed to keep up
with the rest of the reservation system. It still assumes that the amount of
space used will always be less than the total space for the space info, which
hasn't been true for years since I introduced overcommitting. This logic is
correct for DATA, but not for METADATA or SYSTEM.

The first few patches are just cleanups, and can probably be taken as is. The
final patch is the real meat of the problem to address Qu's issues. This is an
RFC because I'm elbow deep in another problem and haven't tested this beyond
compile testing, but I think it'll work. Once I've gotten a chance to test it
and Qu has tested it I'll update the list if it's good to go as is, or send a V2
with any changes. Thanks,

Josef