WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-devel

Re: [Xen-devel] [PATCH 3 of 6] xenbackendd: pass type of block device to

To: Roger Pau Monne <roger.pau@xxxxxxxxxxxxx>
Subject: Re: [Xen-devel] [PATCH 3 of 6] xenbackendd: pass type of block device to hotplug script
From: Ian Campbell <Ian.Campbell@xxxxxxxxxx>
Date: Thu, 22 Sep 2011 14:35:16 +0100
Cc: "xen-devel@xxxxxxxxxxxxxxxxxxx" <xen-devel@xxxxxxxxxxxxxxxxxxx>
Delivery-date: Thu, 22 Sep 2011 06:35:58 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
In-reply-to: <2d77cbdc816bc943e9e6.1316692870@loki>
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
Organization: Citrix Systems, Inc.
References: <patchbomb.1316692867@loki> <2d77cbdc816bc943e9e6.1316692870@loki>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
On Thu, 2011-09-22 at 13:01 +0100, Roger Pau Monne wrote:
> # HG changeset patch
> # User Roger Pau Monne <roger.pau@xxxxxxxxxxxxx>
> # Date 1316692489 -7200
> # Node ID 2d77cbdc816bc943e9e69ecca34ae7157079045a
> # Parent  1d3830f8a7306088b49d5732b5e88a73c2bc0315
> xenbackendd: pass type of block device to hotplug script
> 
> Pass the type of block device to attach to the block script instead of 
> reading it from xenstore, since new Xen versions don't make a difference 
> between a block device or an image.
> 
> Signed-off-by: Roger Pau Monne <roger.pau@xxxxxxxxxxxxx>

I've not got any problem with this one, but I don't think my ACK is
worth much since it's NetBSD and I'm not really qualified, neverless:

Acked-by: Ian Campbell <ian.campbell@xxxxxxxxxx>

> 
> diff -r 1d3830f8a730 -r 2d77cbdc816b tools/hotplug/NetBSD/block
> --- a/tools/hotplug/NetBSD/block      Thu Sep 22 13:54:42 2011 +0200
> +++ b/tools/hotplug/NetBSD/block      Thu Sep 22 13:54:49 2011 +0200
> @@ -19,7 +19,7 @@ error() {
>  
>  xpath=$1
>  xstatus=$2
> -xtype=$(xenstore-read "$xpath/type")
> +xtype=$3
>  xparams=$(xenstore-read "$xpath/params")
>  
>  case $xstatus in
> diff -r 1d3830f8a730 -r 2d77cbdc816b tools/xenbackendd/xenbackendd.c
> --- a/tools/xenbackendd/xenbackendd.c Thu Sep 22 13:54:42 2011 +0200
> +++ b/tools/xenbackendd/xenbackendd.c Thu Sep 22 13:54:49 2011 +0200
> @@ -89,15 +89,15 @@ dodebug(const char *fmt, ...)
>  }
>  
>  static void
> -doexec(const char *cmd, const char *arg1, const char *arg2)
> +doexec(const char *cmd, const char *arg1, const char *arg2, const char *arg3)
>  {
> -     dodebug("exec %s %s %s", cmd, arg1, arg2);
> +     dodebug("exec %s %s %s %s", cmd, arg1, arg2, arg3);
>       switch(vfork()) {
>       case -1:
>               dolog(LOG_ERR, "can't vfork: %s", strerror(errno));
>               break;
>       case 0:
> -             execl(cmd, cmd, arg1, arg2, NULL);
> +             execl(cmd, cmd, arg1, arg2, arg3, NULL);
>               dolog(LOG_ERR, "can't exec %s: %s", cmd, strerror(errno));
>               exit(EXIT_FAILURE);
>               /* NOTREACHED */
> @@ -145,11 +145,14 @@ xen_setup(void)
>  int
>  main(int argc, char * const argv[])
>  {
> +     struct stat stab;
>       char **vec;
>       unsigned int num;
>       char *s;
>       int state;
>       char *sstate;
> +     char *stype;
> +     char *params;
>       char *p;
>       char buf[80];
>       int type;
> @@ -297,11 +300,38 @@ main(int argc, char * const argv[])
>                                   strerror(errno));
>                               goto next2;
>                       }
> -                     doexec(s, vec[XS_WATCH_PATH], sstate);
> +                     doexec(s, vec[XS_WATCH_PATH], sstate, NULL);
>                       break;
>  
>               case DEVTYPE_VBD:
> -                     doexec(vbd_script, vec[XS_WATCH_PATH], sstate);
> +                     /* check if given file is a block device or a raw image 
> */
> +                     snprintf(buf, sizeof(buf), "%s/params", 
> vec[XS_WATCH_PATH]);
> +                     params = xs_read(xs, XBT_NULL, buf, 0);
> +                     if(params == NULL) {
> +                             dolog(LOG_ERR,
> +                                     "Failed to read %s (%s)", buf, 
> strerror(errno));
> +                             goto next2;
> +                     }
> +                     if (stat(params, &stab) < 0) {
> +                             dolog(LOG_ERR,
> +                                     "Failed to get info about %s (%s)", 
> params,
> +                                     strerror(errno));
> +                             goto next3;
> +                     }
> +                     stype = NULL;
> +                     if (S_ISBLK(stab.st_mode))
> +                             stype = "phy";
> +                     if (S_ISREG(stab.st_mode))
> +                             stype = "file";
> +                     if (stype == NULL) {
> +                             dolog(LOG_ERR,
> +                                     "Failed to attach %s (not a block 
> device or raw image)",
> +                                     params, strerror(errno));
> +                             goto next3;
> +                     }
> +                     doexec(vbd_script, vec[XS_WATCH_PATH], sstate, stype);
> +next3:
> +                     free(params);
>                       break;
>  
>               default:
> 
> _______________________________________________
> Xen-devel mailing list
> Xen-devel@xxxxxxxxxxxxxxxxxxx
> http://lists.xensource.com/xen-devel



_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel

<Prev in Thread] Current Thread [Next in Thread>