linux/drivers/md/bcache
Michael Lyle 08f75f2c52 bcache: fix bch_hprint crash and improve output
commit 9276717b9e upstream.

Most importantly, solve a crash where %llu was used to format signed
numbers.  This would cause a buffer overflow when reading sysfs
writeback_rate_debug, as only 20 bytes were allocated for this and
%llu writes 20 characters plus a null.

Always use the units mechanism rather than having different output
paths for simplicity.

Also, correct problems with display output where 1.10 was a larger
number than 1.09, by multiplying by 10 and then dividing by 1024 instead
of dividing by 100.  (Remainders of >= 1000 would print as .10).

Minor changes: Always display the decimal point instead of trying to
omit it based on number of digits shown.  Decide what units to use
based on 1000 as a threshold, not 1024 (in other words, always print
at most 3 digits before the decimal point).

Signed-off-by: Michael Lyle <mlyle@lyle.org>
Reported-by: Dmitry Yu Okunev <dyokunev@ut.mephi.ru>
Acked-by: Kent Overstreet <kent.overstreet@gmail.com>
Reviewed-by: Coly Li <colyli@suse.de>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
History 2017-09-27 14:39:25 +02:00
..
alloc.c bcache: bch_allocator_thread() is not freezable 2016-05-24 09:00:43 -06:00
bcache.h bcache: fix for gc and write-back race 2017-09-27 14:39:25 +02:00
bset.c bcache: Allocate bounce buffers with GFP_NOWAIT 2014-08-04 15:23:03 -07:00
bset.h bcache: fix typo in bch_bkey_equal_header 2014-08-04 15:23:03 -07:00
btree.c bcache: Make gc wakeup sane, remove set_task_state() 2017-02-23 17:44:36 +01:00
btree.h bcache: Make gc wakeup sane, remove set_task_state() 2017-02-23 17:44:36 +01:00
closure.c bcache: update document info 2016-07-05 11:34:49 -06:00
closure.h bcache: update document info 2016-07-05 11:34:49 -06:00
debug.c block: export bio_free_pages to other modules 2016-09-22 07:48:03 -06:00
debug.h bcache: Convert debug code to btree_keys 2014-01-08 13:05:13 -08:00
extents.c bcache: Fix a journal replay bug 2014-08-04 15:23:02 -07:00
extents.h bcache: Fix a journal replay bug 2014-08-04 15:23:02 -07:00
io.c block: simplify and cleanup bvec pool handling 2016-07-20 17:37:02 -06:00
journal.c block, drivers, fs: rename REQ_FLUSH to REQ_PREFLUSH 2016-06-07 13:41:38 -06:00
journal.h bcache: Fix a shutdown bug 2014-02-25 18:42:49 -08:00
Kconfig bcache: Kill dead cgroup code 2014-03-18 12:22:35 -07:00
Makefile bcache: Abstract out stuff needed for sorting 2014-01-08 13:05:12 -08:00
movinggc.c block: export bio_free_pages to other modules 2016-09-22 07:48:03 -06:00
request.c bcache: do not subtract sectors_to_gc for bypassed IO 2017-09-27 14:39:24 +02:00
request.h bcache: Kill dead cgroup code 2014-03-18 12:22:35 -07:00
stats.c bcache: Kill dead cgroup code 2014-03-18 12:22:35 -07:00
stats.h bcache: Break up struct search 2013-11-10 21:56:32 -08:00
super.c bcache: fix for gc and write-back race 2017-09-27 14:39:25 +02:00
sysfs.c bcache: Correct return value for sysfs attach errors 2017-09-27 14:39:25 +02:00
sysfs.h bcache: Don't export utility code, prefix with bch_ 2013-03-28 12:50:55 -06:00
trace.c bcache: Better alloc tracepoints 2014-03-18 12:22:35 -07:00
util.c bcache: fix bch_hprint crash and improve output 2017-09-27 14:39:25 +02:00
util.h bcache: remove driver private bio splitting code 2015-08-13 12:31:40 -06:00
writeback.c bcache: fix for gc and write-back race 2017-09-27 14:39:25 +02:00
writeback.h bcache: correct cache_dirty_target in __update_writeback_rate() 2017-09-27 14:39:24 +02:00