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

Reply via email to