On 01/06/2017 10:05 AM, Juergen Gross wrote:
> Today a Xenstore watch event is delivered via a callback function
> declared as:
>
> void (*callback)(struct xenbus_watch *,
>                  const char **vec, unsigned int len);
>
> As all watch events only ever come with two parameters (path and token)
> changing the prototype to:
>
> void (*callback)(struct xenbus_watch *,
>                  const char *path, const char *token);
>
> is the natural thing to do.
>
> Apply this change and adapt all users.
>
> Cc: konrad.w...@oracle.com
> Cc: roger....@citrix.com
> Cc: wei.l...@citrix.com
> Cc: paul.durr...@citrix.com
> Cc: net...@vger.kernel.org
>
> Signed-off-by: Juergen Gross <jgr...@suse.com>


>  
> @@ -903,24 +902,24 @@ static int process_msg(void)
>       body[msg->hdr.len] = '\0';
>  
>       if (msg->hdr.type == XS_WATCH_EVENT) {
> -             msg->u.watch.vec = split(body, msg->hdr.len,
> -                                      &msg->u.watch.vec_size);
> -             if (IS_ERR(msg->u.watch.vec)) {
> -                     err = PTR_ERR(msg->u.watch.vec);
> +             if (count_strings(body, msg->hdr.len) != 2) {
> +                     err = -EINVAL;

xenbus_write_watch() returns -EILSEQ when this type of error is
encountered so perhaps for we should return the same error here.

Either way

Reviewed-by: Boris Ostrovsky <boris.ostrov...@oracle.com>


Reply via email to