[PATCH v6 0/2] btrfs: Don't block system suspend during fstrim
From: Luca Stefani
Date: Tue Sep 17 2024 - 16:34:04 EST
Changes since v5:
* Make chunk size a define
* Remove superfluous trim_interrupted checks
after moving them to trim_no_bitmap/trim_bitmaps
Changes since v4:
* Set chunk size to 1G
* Set proper error return codes in case of interruption
* Dropped fstrim_range fixup as pulled in -next
Changes since v3:
* Went back to manual chunk size
Changes since v2:
* Use blk_alloc_discard_bio directly
* Reset ret to ERESTARTSYS
Changes since v1:
* Use bio_discard_limit to calculate chunk size
* Makes use of the split chunks
Original discussion: https://lore.kernel.org/lkml/20240822164908.4957-1-luca.stefani.ge1@xxxxxxxxx/
v1: https://lore.kernel.org/lkml/20240902114303.922472-1-luca.stefani.ge1@xxxxxxxxx/
v2: https://lore.kernel.org/lkml/20240902205828.943155-1-luca.stefani.ge1@xxxxxxxxx/
v3: https://lore.kernel.org/lkml/20240903071625.957275-4-luca.stefani.ge1@xxxxxxxxx/
v4: https://lore.kernel.org/lkml/20240916101615.116164-1-luca.stefani.ge1@xxxxxxxxx/
v5: https://lore.kernel.org/lkml/20240916125707.127118-1-luca.stefani.ge1@xxxxxxxxx/
---
NB: I didn't change btrfs_discard_workfn yet to add error checks
as I don't know what semantics we should have in that case.
The work queue is always re-scheduled and created with WQ_FREEZABLE
so it should be automatically frozen. Shall I simply add some logs?
---
Luca Stefani (2):
btrfs: Split remaining space to discard in chunks
btrfs: Don't block system suspend during fstrim
fs/btrfs/extent-tree.c | 26 +++++++++++++++++++++-----
fs/btrfs/free-space-cache.c | 4 ++--
fs/btrfs/free-space-cache.h | 6 ++++++
fs/btrfs/volumes.h | 1 +
4 files changed, 30 insertions(+), 7 deletions(-)
--
2.46.0