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 <[email protected]>
> ---
> 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;
_______________________________________________
Linux-nvdimm mailing list
[email protected]
https://lists.01.org/mailman/listinfo/linux-nvdimm