]> git.baikalelectronics.ru Git - kernel.git/commit
btrfs: defrag: introduce helper to defrag a contiguous prepared range
authorQu Wenruo <wqu@suse.com>
Fri, 6 Aug 2021 08:12:37 +0000 (16:12 +0800)
committerDavid Sterba <dsterba@suse.com>
Tue, 26 Oct 2021 17:07:13 +0000 (19:07 +0200)
commitbf1e246bb94e8b78b6a3d87c7279400dfeea36a5
tree7b1649ba233ef0dec6c9a590a77659f4faed198a
parent5a3849d08c2d0d9cffa0408b5872df56b96ed3cd
btrfs: defrag: introduce helper to defrag a contiguous prepared range

A new helper, defrag_one_locked_target(), introduced to do the real part
of defrag.

The caller needs to ensure both page and extents bits are locked, and no
ordered extent exists for the range, and all writeback is finished.

The core defrag part is pretty straight-forward:

- Reserve space
- Set extent bits to defrag
- Update involved pages to be dirty

Signed-off-by: Qu Wenruo <wqu@suse.com>
Reviewed-by: David Sterba <dsterba@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
fs/btrfs/ioctl.c