> 2022年12月7日 17:02,<ye.xingchen@xxxxxxxxxx> <ye.xingchen@xxxxxxxxxx> 写道: > > From: ye xingchen <ye.xingchen@xxxxxxxxxx> > > Follow the advice of the Documentation/filesystems/sysfs.rst and show() > should only use sysfs_emit() or sysfs_emit_at() when formatting the > value to be returned to user space. > > Signed-off-by: ye xingchen <ye.xingchen@xxxxxxxxxx> Added to my for-next queue for Linux v6.3 merge window. Thanks. Coly Li > --- > drivers/md/bcache/sysfs.c | 31 +++++++++++++++---------------- > 1 file changed, 15 insertions(+), 16 deletions(-) > > diff --git a/drivers/md/bcache/sysfs.c b/drivers/md/bcache/sysfs.c > index c6f677059214..0e2c1880f60b 100644 > --- a/drivers/md/bcache/sysfs.c > +++ b/drivers/md/bcache/sysfs.c > @@ -1111,26 +1111,25 @@ SHOW(__bch_cache) > > vfree(p); > > - ret = scnprintf(buf, PAGE_SIZE, > - "Unused: %zu%%\n" > - "Clean: %zu%%\n" > - "Dirty: %zu%%\n" > - "Metadata: %zu%%\n" > - "Average: %llu\n" > - "Sectors per Q: %zu\n" > - "Quantiles: [", > - unused * 100 / (size_t) ca->sb.nbuckets, > - available * 100 / (size_t) ca->sb.nbuckets, > - dirty * 100 / (size_t) ca->sb.nbuckets, > - meta * 100 / (size_t) ca->sb.nbuckets, sum, > - n * ca->sb.bucket_size / (ARRAY_SIZE(q) + 1)); > + ret = sysfs_emit(buf, > + "Unused: %zu%%\n" > + "Clean: %zu%%\n" > + "Dirty: %zu%%\n" > + "Metadata: %zu%%\n" > + "Average: %llu\n" > + "Sectors per Q: %zu\n" > + "Quantiles: [", > + unused * 100 / (size_t) ca->sb.nbuckets, > + available * 100 / (size_t) ca->sb.nbuckets, > + dirty * 100 / (size_t) ca->sb.nbuckets, > + meta * 100 / (size_t) ca->sb.nbuckets, sum, > + n * ca->sb.bucket_size / (ARRAY_SIZE(q) + 1)); > > for (i = 0; i < ARRAY_SIZE(q); i++) > - ret += scnprintf(buf + ret, PAGE_SIZE - ret, > - "%u ", q[i]); > + ret += sysfs_emit_at(buf, ret, "%u ", q[i]); > ret--; > > - ret += scnprintf(buf + ret, PAGE_SIZE - ret, "]\n"); > + ret += sysfs_emit_at(buf, ret, "]\n"); > > return ret; > } > -- > 2.25.1