printk(KERN_NOTICE bch2_fmt(c, fmt), ##__VA_ARGS__)
 #define bch_warn(c, fmt, ...) \
        printk(KERN_WARNING bch2_fmt(c, fmt), ##__VA_ARGS__)
+#define bch_warn_ratelimited(c, fmt, ...) \
+       printk_ratelimited(KERN_WARNING bch2_fmt(c, fmt), ##__VA_ARGS__)
 #define bch_err(c, fmt, ...) \
        printk(KERN_ERR bch2_fmt(c, fmt), ##__VA_ARGS__)
 #define bch_err_ratelimited(c, fmt, ...) \
 
        up_read(&ca->bucket_lock);
 
        if (sectors_not_moved && !ret)
-               bch_warn(c, "copygc finished but %llu/%llu sectors, %llu/%llu buckets not moved",
+               bch_warn_ratelimited(c,
+                       "copygc finished but %llu/%llu sectors, %llu/%llu buckets not moved",
                         sectors_not_moved, sectors_to_move,
                         buckets_not_moved, buckets_to_move);