write_attribute(trigger_gc);
 write_attribute(trigger_discards);
+write_attribute(trigger_invalidates);
 write_attribute(prune_cache);
 rw_attribute(btree_gc_periodic);
 rw_attribute(gc_gens_pos);
        if (attr == &sysfs_trigger_discards)
                bch2_do_discards(c);
 
+       if (attr == &sysfs_trigger_invalidates)
+               bch2_do_invalidates(c);
+
 #ifdef CONFIG_BCACHEFS_TESTS
        if (attr == &sysfs_perf_test) {
                char *tmp = kstrdup(buf, GFP_KERNEL), *p = tmp;
 
        &sysfs_trigger_gc,
        &sysfs_trigger_discards,
+       &sysfs_trigger_invalidates,
        &sysfs_prune_cache,
 
        &sysfs_read_realloc_races,
               "open_buckets_wait\t%s\n"
               "open_buckets_btree\t%u\n"
               "open_buckets_user\t%u\n"
+              "buckets_to_invalidate\t%llu\n"
               "btree reserve cache\t%u\n",
               stats.buckets_ec,
               c->freelist_wait.list.first              ? "waiting" : "empty",
               c->open_buckets_wait.list.first          ? "waiting" : "empty",
               nr[BCH_DATA_btree],
               nr[BCH_DATA_user],
+              should_invalidate_buckets(ca, stats),
               c->btree_reserve_cache_nr);
 }