[SCSI] lib: string_get_size(): don't hang on zero; no decimals on exact
authorH. Peter Anvin <hpa@zytor.com>
Tue, 14 Oct 2008 18:34:21 +0000 (11:34 -0700)
committerJames Bottomley <James.Bottomley@HansenPartnership.com>
Thu, 23 Oct 2008 16:42:20 +0000 (11:42 -0500)
commita8659597bf744b0f8d2560e2a734b5c941569e0e
treeb0630c44727dc3621a1d51a3e2fe5f51eb646e16
parent3fe68cc152fc7cc6a763c692544a0ab71926c800
[SCSI] lib: string_get_size(): don't hang on zero; no decimals on exact

We would hang forever when passing a zero to string_get_size().
Furthermore, string_get_size() would produce decimals on a value small
enough to be exact.  Finally, a few formatting issues are inconsistent
with standard SI style guidelines.

- If the value is less than the divisor, skip the entire rounding
  step.  This prints out all small values including zero as integers,
  without decimals.
- Add a space between the value and the symbol for the unit,
  consistent with standard SI practice.
- Lower case k in kB since we are talking about powers of 10.
- Finally, change "int" to "unsigned int" in one place to shut up a
  gcc warning when compiling the code out-of-kernel for testing.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
lib/string_helpers.c