Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

lib/string_helpers.c:string_get_size(): remove redundant prefixes

While commit 3c9f3681d0b4 ("[SCSI] lib: add generic helper to print
sizes rounded to the correct SI range") says that Z and Y are included
in preparation for 128 bit computers, they just waste .text currently.
If and when we get u128, string_get_size needs updating anyway (and ISO
needs to come up with four more prefixes).

Also there's no need to include and test for the NULL sentinel; once we
reach "E" size is at most 18. [The test is also wrong; it should be
units_str[units][i+1]; if we've reached NULL we're already doomed.]

Signed-off-by: Rasmus Villemoes <linux@rasmusvillemoes.dk>
Cc: James Bottomley <James.Bottomley@HansenPartnership.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

authored by

Rasmus Villemoes and committed by
Linus Torvalds
7eed8fde 43e5b666

+3 -4
+3 -4
lib/string_helpers.c
··· 28 28 char *buf, int len) 29 29 { 30 30 static const char *const units_10[] = { 31 - "B", "kB", "MB", "GB", "TB", "PB", "EB", "ZB", "YB", NULL 31 + "B", "kB", "MB", "GB", "TB", "PB", "EB" 32 32 }; 33 33 static const char *const units_2[] = { 34 - "B", "KiB", "MiB", "GiB", "TiB", "PiB", "EiB", "ZiB", "YiB", 35 - NULL 34 + "B", "KiB", "MiB", "GiB", "TiB", "PiB", "EiB" 36 35 }; 37 36 static const char *const *const units_str[] = { 38 37 [STRING_UNITS_10] = units_10, ··· 48 49 tmp[0] = '\0'; 49 50 i = 0; 50 51 if (size >= divisor[units]) { 51 - while (size >= divisor[units] && units_str[units][i]) { 52 + while (size >= divisor[units]) { 52 53 remainder = do_div(size, divisor[units]); 53 54 i++; 54 55 }