btrfs-progs: check: lowmem: introduce avoid_extents_overwrite
commit4e320db9dd6885ad3f6264cf2595f0242d6893f8
authorSu Yue <suy.fnst@cn.fujitsu.com>
Tue, 8 May 2018 08:30:01 +0000 (8 16:30 +0800)
committerDavid Sterba <dsterba@suse.com>
Thu, 7 Jun 2018 14:37:30 +0000 (7 16:37 +0200)
tree5dcf3e108cdc9b53eb4920660fd37fbe5b54d9ee
parente99f3775413cccf51ebf2d48e26cedc34226c293
btrfs-progs: check: lowmem: introduce avoid_extents_overwrite

Declare a global u64 variable last_allocated_chunk records start of
the last chunk allocated by lowmem repair.
Although global variable is not nice, it simplifies the code a lot.

avoid_extents_overwrite() prefers to allocate a new chunk first.
If it failed because of no space or wrong used bytes (like in
fsck-tests/004), then it tries to exclude metadata blocks which costs
a lot of time in large filesystems.

Signed-off-by: Su Yue <suy.fnst@cn.fujitsu.com>
Signed-off-by: David Sterba <dsterba@suse.com>
check/mode-lowmem.c