Message ID | 20180719085427.17836-1-qi.fuli@jp.fujitsu.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Thu, 2018-07-19 at 17:54 +0900, QI Fuli wrote: > Currently, the monitor still can be started though there is no dimm event > to be monitored, which is caused by the typo of uses. In this case, > no smart event message can be logged. > This patch is used to fix this bug. When user starts the monitor with > invalid dimm event in [--dimm-event] option, the monitor will stop and > output error message. > > Signed-off-by: QI Fuli <qi.fuli@jp.fujitsu.com> > --- > ndctl/monitor.c | 16 ++++++++++------ > 1 file changed, 10 insertions(+), 6 deletions(-) Looks good, applied. > > diff --git a/ndctl/monitor.c b/ndctl/monitor.c > index 8300250..abab45f 100644 > --- a/ndctl/monitor.c > +++ b/ndctl/monitor.c > @@ -413,7 +413,7 @@ static int monitor_event(struct ndctl_ctx *ctx, > return 0; > } > > -static int parse_monitor_event(struct monitor *_monitor) > +static int parse_monitor_event(struct monitor *_monitor, struct ndctl_ctx *ctx) > { > char *dimm_event, *save; > const char *event; > @@ -432,14 +432,18 @@ static int parse_monitor_event(struct monitor *_monitor) > } > if (strcmp(event, "dimm-spares-remaining") == 0) > _monitor->event_flags |= ND_EVENT_SPARES_REMAINING; > - if (strcmp(event, "dimm-media-temperature") == 0) > + else if (strcmp(event, "dimm-media-temperature") == 0) > _monitor->event_flags |= ND_EVENT_MEDIA_TEMPERATURE; > - if (strcmp(event, "dimm-controller-temperature") == 0) > + else if (strcmp(event, "dimm-controller-temperature") == 0) > _monitor->event_flags |= ND_EVENT_CTRL_TEMPERATURE; > - if (strcmp(event, "dimm-health-state") == 0) > + else if (strcmp(event, "dimm-health-state") == 0) > _monitor->event_flags |= ND_EVENT_HEALTH_STATE; > - if (strcmp(event, "dimm-unclean-shutdown") == 0) > + else if (strcmp(event, "dimm-unclean-shutdown") == 0) > _monitor->event_flags |= ND_EVENT_UNCLEAN_SHUTDOWN; > + else { > + err(ctx, "no dimm-event named %s\n", event); > + return 1; > + } > } > > free(dimm_event); > @@ -620,7 +624,7 @@ int cmd_monitor(int argc, const char **argv, void *ctx) > notice((struct ndctl_ctx *)ctx, "ndctl monitor daemon started\n"); > } > > - if (parse_monitor_event(&monitor)) > + if (parse_monitor_event(&monitor, (struct ndctl_ctx *)ctx)) > goto out; > > fctx.filter_bus = filter_bus;
diff --git a/ndctl/monitor.c b/ndctl/monitor.c index 8300250..abab45f 100644 --- a/ndctl/monitor.c +++ b/ndctl/monitor.c @@ -413,7 +413,7 @@ static int monitor_event(struct ndctl_ctx *ctx, return 0; } -static int parse_monitor_event(struct monitor *_monitor) +static int parse_monitor_event(struct monitor *_monitor, struct ndctl_ctx *ctx) { char *dimm_event, *save; const char *event; @@ -432,14 +432,18 @@ static int parse_monitor_event(struct monitor *_monitor) } if (strcmp(event, "dimm-spares-remaining") == 0) _monitor->event_flags |= ND_EVENT_SPARES_REMAINING; - if (strcmp(event, "dimm-media-temperature") == 0) + else if (strcmp(event, "dimm-media-temperature") == 0) _monitor->event_flags |= ND_EVENT_MEDIA_TEMPERATURE; - if (strcmp(event, "dimm-controller-temperature") == 0) + else if (strcmp(event, "dimm-controller-temperature") == 0) _monitor->event_flags |= ND_EVENT_CTRL_TEMPERATURE; - if (strcmp(event, "dimm-health-state") == 0) + else if (strcmp(event, "dimm-health-state") == 0) _monitor->event_flags |= ND_EVENT_HEALTH_STATE; - if (strcmp(event, "dimm-unclean-shutdown") == 0) + else if (strcmp(event, "dimm-unclean-shutdown") == 0) _monitor->event_flags |= ND_EVENT_UNCLEAN_SHUTDOWN; + else { + err(ctx, "no dimm-event named %s\n", event); + return 1; + } } free(dimm_event); @@ -620,7 +624,7 @@ int cmd_monitor(int argc, const char **argv, void *ctx) notice((struct ndctl_ctx *)ctx, "ndctl monitor daemon started\n"); } - if (parse_monitor_event(&monitor)) + if (parse_monitor_event(&monitor, (struct ndctl_ctx *)ctx)) goto out; fctx.filter_bus = filter_bus;
Currently, the monitor still can be started though there is no dimm event to be monitored, which is caused by the typo of uses. In this case, no smart event message can be logged. This patch is used to fix this bug. When user starts the monitor with invalid dimm event in [--dimm-event] option, the monitor will stop and output error message. Signed-off-by: QI Fuli <qi.fuli@jp.fujitsu.com> --- ndctl/monitor.c | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-)