• Yaroslav Sidlovsky's avatar
    Fix smartctl exit status success check · 8746ef72
    Yaroslav Sidlovsky authored
    According to the smartctl man page:
    The  exit  statuses of smartctl are defined by a bitmask.  If all is well with the disk, the exit status (return value) of smartctl is 0 (all bits turned off).  If a problem occurs, or an error, potential error, or fault is detected, then a non-zero status is
    returned.  In this case, the eight different bits in the exit status have the following meanings for ATA disks; some of these values may also be returned for SCSI disks.
    Bit 0: Command line did not parse.
    Bit 1: Device open failed, device did not return an IDENTIFY DEVICE structure, or device is in a low-power mode (see '-n' option above).
    Bit 2: Some SMART or other ATA command to the disk failed, or there was a checksum error in a SMART data structure (see '-b' option above).
    Bit 3: SMART status check returned "DISK FAILING".
    Bit 4: We found prefail Attributes <= threshold.
    Bit 5: SMART status check returned "DISK OK" but we found that some (usage or prefail) Attributes have been <= threshold at some time in the past.
    Bit 6: The device error log contains records of errors.
    Bit 7: The device self-test log contains records of errors.  [ATA only] Failed self-tests outdated by a newer successful extended self-test are ignored.
    BUG: 429028
smartparser.cpp 5.31 KB