34 lines
1.3 KiB
Diff
34 lines
1.3 KiB
Diff
From f3b4692b79f930695b312a7192f0bc8f260af9ff Mon Sep 17 00:00:00 2001
|
|
From: Kent Overstreet <kent.overstreet@linux.dev>
|
|
Date: Sat, 7 Dec 2024 20:43:07 -0500
|
|
Subject: [PATCH 183/233] bcachefs: Set bucket needs discard, inc gen on empty
|
|
-> nonempty transition
|
|
Content-Type: text/plain; charset="utf-8"
|
|
Content-Transfer-Encoding: 8bit
|
|
|
|
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
|
|
Signed-off-by: Alexander Miroshnichenko <alex@millerson.name>
|
|
---
|
|
fs/bcachefs/alloc_background.c | 5 ++++-
|
|
1 file changed, 4 insertions(+), 1 deletion(-)
|
|
|
|
diff --git a/fs/bcachefs/alloc_background.c b/fs/bcachefs/alloc_background.c
|
|
index b2d570453351..62069231c63b 100644
|
|
--- a/fs/bcachefs/alloc_background.c
|
|
+++ b/fs/bcachefs/alloc_background.c
|
|
@@ -856,7 +856,10 @@ int bch2_trigger_alloc(struct btree_trans *trans,
|
|
if (flags & BTREE_TRIGGER_transactional) {
|
|
alloc_data_type_set(new_a, new_a->data_type);
|
|
|
|
- if (bch2_bucket_sectors_total(*new_a) > bch2_bucket_sectors_total(*old_a)) {
|
|
+ int is_empty_delta = (int) data_type_is_empty(new_a->data_type) -
|
|
+ (int) data_type_is_empty(old_a->data_type);
|
|
+
|
|
+ if (is_empty_delta < 0) {
|
|
new_a->io_time[READ] = bch2_current_io_time(c, READ);
|
|
new_a->io_time[WRITE]= bch2_current_io_time(c, WRITE);
|
|
SET_BCH_ALLOC_V4_NEED_INC_GEN(new_a, true);
|
|
--
|
|
2.45.2
|
|
|