You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

66 lines
1.6 KiB

  1. --- a/src/ubi.c
  2. +++ b/src/ubi.c
  3. @@ -84,9 +84,8 @@ static void ubi_submit(const char *dev_n
  4. plugin_dispatch_values(&vl);
  5. } /* void ubi_submit */
  6. -static int ubi_read_dev_attr(const char *dev_name, const char *attr) {
  7. +static int ubi_read_dev_attr(const char *dev_name, const char *attr, int *value) {
  8. FILE *f;
  9. - int val;
  10. char
  11. str[sizeof(SYS_PATH) + strlen(dev_name) + sizeof("/") + strlen(attr) + 1];
  12. int n;
  13. @@ -98,7 +97,7 @@ static int ubi_read_dev_attr(const char
  14. return -1;
  15. }
  16. - n = fscanf(f, "%d", &val);
  17. + n = fscanf(f, "%d", value);
  18. fclose(f);
  19. if (n != 1) {
  20. @@ -106,17 +105,39 @@ static int ubi_read_dev_attr(const char
  21. return -1;
  22. }
  23. - ubi_submit(dev_name, attr, (gauge_t)val);
  24. -
  25. return 0;
  26. } /* int ubi_read_dev_attr */
  27. static inline int ubi_read_dev_bad_count(const char *dev_name) {
  28. - return ubi_read_dev_attr(dev_name, DEV_BAD_COUNT);
  29. + int ret;
  30. + int value;
  31. +
  32. + ret = ubi_read_dev_attr(dev_name, DEV_BAD_COUNT, &value);
  33. +
  34. + if (ret != 0) {
  35. + ERROR(PLUGIN_NAME " : Unable to read bat_peb_count");
  36. + return -1;
  37. + }
  38. +
  39. + ubi_submit(dev_name, DEV_BAD_COUNT, (gauge_t)value);
  40. +
  41. + return 0;
  42. } /* int ubi_read_dev_bad_count */
  43. static inline int ubi_read_max_ec(const char *dev_name) {
  44. - return ubi_read_dev_attr(dev_name, MAXIMUM_ERASE);
  45. + int ret;
  46. + int value;
  47. +
  48. + ret = ubi_read_dev_attr(dev_name, MAXIMUM_ERASE, &value);
  49. +
  50. + if (ret != 0) {
  51. + ERROR(PLUGIN_NAME " : Unable to read max_ec");
  52. + return -1;
  53. + }
  54. +
  55. + ubi_submit(dev_name, MAXIMUM_ERASE, (gauge_t)value);
  56. +
  57. + return 0;
  58. } /* int ubi_read_max_ec */
  59. static int ubi_read(void) {