]> git.sesse.net Git - bcachefs-tools-debian/blobdiff - libbcachefs/util.c
Update bcachefs sources to a8b3ce7599 fixup! bcachefs: Eliminate more PAGE_SIZE uses
[bcachefs-tools-debian] / libbcachefs / util.c
index e69d03d1109ff0cf4cd3acb1ecc886b65c5e3a4c..e3ad26e244ab4cd161baf57d735dc022c386a343 100644 (file)
@@ -154,7 +154,7 @@ void bch2_flags_to_text(struct printbuf *out,
 u64 bch2_read_flag_list(char *opt, const char * const list[])
 {
        u64 ret = 0;
-       char *p, *s, *d = kstrndup(opt, PAGE_SIZE - 1, GFP_KERNEL);
+       char *p, *s, *d = kstrdup(opt, GFP_KERNEL);
 
        if (!d)
                return -ENOMEM;
@@ -318,43 +318,40 @@ static void pr_time_units(struct printbuf *out, u64 ns)
        pr_buf(out, "%llu %s", div_u64(ns, u->nsecs), u->name);
 }
 
-size_t bch2_time_stats_print(struct time_stats *stats, char *buf, size_t len)
+void bch2_time_stats_to_text(struct printbuf *out, struct time_stats *stats)
 {
-       struct printbuf out = _PBUF(buf, len);
        const struct time_unit *u;
        u64 freq = READ_ONCE(stats->average_frequency);
        u64 q, last_q = 0;
        int i;
 
-       pr_buf(&out, "count:\t\t%llu\n",
+       pr_buf(out, "count:\t\t%llu\n",
                         stats->count);
-       pr_buf(&out, "rate:\t\t%llu/sec\n",
+       pr_buf(out, "rate:\t\t%llu/sec\n",
               freq ?  div64_u64(NSEC_PER_SEC, freq) : 0);
 
-       pr_buf(&out, "frequency:\t");
-       pr_time_units(&out, freq);
+       pr_buf(out, "frequency:\t");
+       pr_time_units(out, freq);
 
-       pr_buf(&out, "\navg duration:\t");
-       pr_time_units(&out, stats->average_duration);
+       pr_buf(out, "\navg duration:\t");
+       pr_time_units(out, stats->average_duration);
 
-       pr_buf(&out, "\nmax duration:\t");
-       pr_time_units(&out, stats->max_duration);
+       pr_buf(out, "\nmax duration:\t");
+       pr_time_units(out, stats->max_duration);
 
        i = eytzinger0_first(NR_QUANTILES);
        u = pick_time_units(stats->quantiles.entries[i].m);
 
-       pr_buf(&out, "\nquantiles (%s):\t", u->name);
+       pr_buf(out, "\nquantiles (%s):\t", u->name);
        eytzinger0_for_each(i, NR_QUANTILES) {
                bool is_last = eytzinger0_next(i, NR_QUANTILES) == -1;
 
                q = max(stats->quantiles.entries[i].m, last_q);
-               pr_buf(&out, "%llu%s",
+               pr_buf(out, "%llu%s",
                       div_u64(q, u->nsecs),
                       is_last ? "\n" : " ");
                last_q = q;
        }
-
-       return out.pos - buf;
 }
 
 void bch2_time_stats_exit(struct time_stats *stats)
@@ -523,7 +520,7 @@ int bch2_bio_alloc_pages(struct bio *bio, size_t size, gfp_t gfp_mask)
 {
        while (size) {
                struct page *page = alloc_page(gfp_mask);
-               unsigned len = min(PAGE_SIZE, size);
+               unsigned len = min_t(size_t, PAGE_SIZE, size);
 
                if (!page)
                        return -ENOMEM;