]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
bcachefs: bch2_lru_change() checks for no-op
authorKent Overstreet <kent.overstreet@linux.dev>
Mon, 10 Feb 2025 23:37:50 +0000 (18:37 -0500)
committerKent Overstreet <kent.overstreet@linux.dev>
Sat, 15 Mar 2025 01:02:14 +0000 (21:02 -0400)
Minor cleanup, no reason for the caller to have to this.

Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
fs/bcachefs/alloc_background.c
fs/bcachefs/lru.c
fs/bcachefs/lru.h

index a354558022802530e58e9f09e88fdd0d60e8e465..e1061524bdf5d1b17843e1e1ad039323b3897283 100644 (file)
@@ -889,26 +889,20 @@ int bch2_trigger_alloc(struct btree_trans *trans,
                    !new_a->io_time[READ])
                        new_a->io_time[READ] = bch2_current_io_time(c, READ);
 
-               u64 old_lru = alloc_lru_idx_read(*old_a);
-               u64 new_lru = alloc_lru_idx_read(*new_a);
-               if (old_lru != new_lru) {
-                       ret = bch2_lru_change(trans, new.k->p.inode,
-                                             bucket_to_u64(new.k->p),
-                                             old_lru, new_lru);
-                       if (ret)
-                               goto err;
-               }
+               ret = bch2_lru_change(trans, new.k->p.inode,
+                                     bucket_to_u64(new.k->p),
+                                     alloc_lru_idx_read(*old_a),
+                                     alloc_lru_idx_read(*new_a));
+               if (ret)
+                       goto err;
 
-               old_lru = alloc_lru_idx_fragmentation(*old_a, ca);
-               new_lru = alloc_lru_idx_fragmentation(*new_a, ca);
-               if (old_lru != new_lru) {
-                       ret = bch2_lru_change(trans,
-                                       BCH_LRU_FRAGMENTATION_START,
-                                       bucket_to_u64(new.k->p),
-                                       old_lru, new_lru);
-                       if (ret)
-                               goto err;
-               }
+               ret = bch2_lru_change(trans,
+                                     BCH_LRU_FRAGMENTATION_START,
+                                     bucket_to_u64(new.k->p),
+                                     alloc_lru_idx_fragmentation(*old_a, ca),
+                                     alloc_lru_idx_fragmentation(*new_a, ca));
+               if (ret)
+                       goto err;
 
                if (old_a->gen != new_a->gen) {
                        ret = bch2_bucket_gen_update(trans, new.k->p, new_a->gen);
index ce794d55818fb91c0c712c4e958a617e2745f80d..8ec16ae8daa65bdaf47e32fa7c668eaea36aeeb6 100644 (file)
@@ -59,9 +59,9 @@ int bch2_lru_set(struct btree_trans *trans, u16 lru_id, u64 dev_bucket, u64 time
        return __bch2_lru_set(trans, lru_id, dev_bucket, time, KEY_TYPE_set);
 }
 
-int bch2_lru_change(struct btree_trans *trans,
-                   u16 lru_id, u64 dev_bucket,
-                   u64 old_time, u64 new_time)
+int __bch2_lru_change(struct btree_trans *trans,
+                     u16 lru_id, u64 dev_bucket,
+                     u64 old_time, u64 new_time)
 {
        if (old_time == new_time)
                return 0;
index f31a6cf1514cdd5229c12723c3483236eaa0aaed..2facc0758cb3f6fa6f1e030ff38013b2a92c27b7 100644 (file)
@@ -46,7 +46,16 @@ void bch2_lru_pos_to_text(struct printbuf *, struct bpos);
 
 int bch2_lru_del(struct btree_trans *, u16, u64, u64);
 int bch2_lru_set(struct btree_trans *, u16, u64, u64);
-int bch2_lru_change(struct btree_trans *, u16, u64, u64, u64);
+int __bch2_lru_change(struct btree_trans *, u16, u64, u64, u64);
+
+static inline int bch2_lru_change(struct btree_trans *trans,
+                     u16 lru_id, u64 dev_bucket,
+                     u64 old_time, u64 new_time)
+{
+       return old_time != new_time
+               ? __bch2_lru_change(trans, lru_id, dev_bucket, old_time, new_time)
+               : 0;
+}
 
 struct bkey_buf;
 int bch2_lru_check_set(struct btree_trans *, u16, u64, struct bkey_s_c, struct bkey_buf *);