]> 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)
commit22b398eeeed43d51e85b1008e51bf9663ac1f491
tree7b1649ba233ef0dec6c9a590a77659f4faed198a
parenteb793cf857828dbb1f21bfe405e5e493fdceae6c
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