diff --git a/smartmontools/CHANGELOG b/smartmontools/CHANGELOG index bd54698006432fd87f8e55a6fb0c224338e1fd81..75c203eef32bac991591cad1a98214d1dab1e2f1 100644 --- a/smartmontools/CHANGELOG +++ b/smartmontools/CHANGELOG @@ -42,6 +42,9 @@ NOTES FOR FUTURE RELEASES: see TODO file. <DEVELOPERS: ADDITIONS TO THE CHANGE LOG GO JUST BELOW HERE, PLEASE> + [CF] smartctl: Limit default number of printed entries for + '-l xerror' to 8, for '-l xselftest' to 25. + [CF] smartctl: Fix number of entries in '-l xselftest' output. [CF] Add USB IDs of a SunplusIT bridge, three WD drives, and an diff --git a/smartmontools/smartctl.8.in b/smartmontools/smartctl.8.in index 0d05ce8c461036e1ca7ff79a4b669ade3f084ab8..d9cf68b1fadafdc2e5e7c7c12e34039ef44fe829 100644 --- a/smartmontools/smartctl.8.in +++ b/smartmontools/smartctl.8.in @@ -853,10 +853,11 @@ it provides sufficient space to log the contents of the 48-bit LBA register set introduced with ATA-6. It also supports logs with more than one sector. Each sector holds up to 4 log entries. The actual number of log sectors is vendor specific, typical values -are 2 (Samsung), 5 (Seagate) or 6 (WD). +for HDD are 2 (Samsung), 5 (Seagate) or 6 (WD). Some recent SSD devices +have much larger error logs. -If the optional parameter NUM is specified, only the NUM most -recent log entries are printed. Otherwise, all entries are printed. +Only the 8 most recent error log entries are printed by default. +This number can be changed by the optional parameter NUM. If ',error' is appended and the Extended Comprehensive SMART error log is not supported, the Summary SMART self-test log is printed. @@ -909,8 +910,8 @@ and logs with more than one sector. Each sector holds up to 19 log entries. The actual number of log sectors is vendor specific, typical values are 1 (Seagate) or 2 (Samsung). -If the optional parameter NUM is specified, only the NUM most -recent log entries are printed. Otherwise, all entries are printed. +Only the 25 most recent log entries are printed by default. This number +can be changed by the optional parameter NUM. If ',selftest' is appended and the Extended SMART self-test log is not supported, the old SMART self-test log is printed. diff --git a/smartmontools/smartctl.cpp b/smartmontools/smartctl.cpp index c49573ba14d19ac2d6254bcca261de775e2a4e16..589ef1c576be711a86383d17f7c83df0fe359494 100644 --- a/smartmontools/smartctl.cpp +++ b/smartmontools/smartctl.cpp @@ -443,7 +443,7 @@ const char * parse_options(int argc, char** argv, } else if (!strncmp(optarg, "xerror", sizeof("xerror")-1)) { int n1 = -1, n2 = -1, len = strlen(optarg); - unsigned val = ~0U; + unsigned val = 8; sscanf(optarg, "xerror%n,error%n", &n1, &n2); if (!(n1 == len || n2 == len)) { n1 = n2 = -1; @@ -458,7 +458,7 @@ const char * parse_options(int argc, char** argv, } else if (!strncmp(optarg, "xselftest", sizeof("xselftest")-1)) { int n1 = -1, n2 = -1, len = strlen(optarg); - unsigned val = ~0U; + unsigned val = 25; sscanf(optarg, "xselftest%n,selftest%n", &n1, &n2); if (!(n1 == len || n2 == len)) { n1 = n2 = -1; @@ -522,8 +522,10 @@ const char * parse_options(int argc, char** argv, ataopts.smart_check_status = scsiopts.smart_check_status = true; ataopts.smart_general_values = true; ataopts.smart_vendor_attrib = scsiopts.smart_vendor_attrib = true; - ataopts.smart_ext_error_log = ataopts.smart_ext_selftest_log = ~0U; - ataopts.retry_error_log = ataopts.retry_selftest_log = true; + ataopts.smart_ext_error_log = 8; + ataopts.retry_error_log = true; + ataopts.smart_ext_selftest_log = 25; + ataopts.retry_selftest_log = true; scsiopts.smart_error_log = scsiopts.smart_selftest_log = true; ataopts.smart_selective_selftest_log = true; ataopts.smart_logdir = ataopts.gp_logdir = true;