pstore: fs superblock limits

Leaving granularity at 1ns because it is dependent on the specific
attached backing pstore module. ramoops has microsecond resolution.

Fix the readback of ramoops fractional timestamp microseconds,
which has incorrectly been reporting the value as nanoseconds.

Fixes: 3f8f80f0cf ("pstore/ram: Read and write to the 'compressed' flag of pstore").

Signed-off-by: Deepa Dinamani <deepa.kernel@gmail.com>
Acked-by: Kees Cook <keescook@chromium.org>
Acked-by: Jeff Layton <jlayton@kernel.org>
Cc: anton@enomsg.org
Cc: ccross@android.com
Cc: keescook@chromium.org
Cc: tony.luck@intel.com
This commit is contained in:
Deepa Dinamani 2019-06-23 16:00:01 -07:00
parent 8833293d0a
commit 83b8a3fbe3
1 changed files with 2 additions and 0 deletions

View File

@ -144,6 +144,7 @@ static int ramoops_read_kmsg_hdr(char *buffer, struct timespec64 *time,
if (sscanf(buffer, RAMOOPS_KERNMSG_HDR "%lld.%lu-%c\n%n", if (sscanf(buffer, RAMOOPS_KERNMSG_HDR "%lld.%lu-%c\n%n",
(time64_t *)&time->tv_sec, &time->tv_nsec, &data_type, (time64_t *)&time->tv_sec, &time->tv_nsec, &data_type,
&header_length) == 3) { &header_length) == 3) {
time->tv_nsec *= 1000;
if (data_type == 'C') if (data_type == 'C')
*compressed = true; *compressed = true;
else else
@ -151,6 +152,7 @@ static int ramoops_read_kmsg_hdr(char *buffer, struct timespec64 *time,
} else if (sscanf(buffer, RAMOOPS_KERNMSG_HDR "%lld.%lu\n%n", } else if (sscanf(buffer, RAMOOPS_KERNMSG_HDR "%lld.%lu\n%n",
(time64_t *)&time->tv_sec, &time->tv_nsec, (time64_t *)&time->tv_sec, &time->tv_nsec,
&header_length) == 2) { &header_length) == 2) {
time->tv_nsec *= 1000;
*compressed = false; *compressed = false;
} else { } else {
time->tv_sec = 0; time->tv_sec = 0;