All of lore.kernel.org
 help / color / mirror / Atom feed
From: Christoph Egger <Christoph.Egger@amd.com>
To: Ian Campbell <Ian.Campbell@citrix.com>
Cc: Roger Pau Monne <roger.pau@entel.upc.edu>,
	"xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>
Subject: Re: [PATCH 3 of 6] xenbackendd: pass type of block	device to hotplug script
Date: Thu, 22 Sep 2011 16:07:49 +0200	[thread overview]
Message-ID: <4E7B4135.2030209@amd.com> (raw)
In-Reply-To: <1316698516.23371.70.camel@zakaz.uk.xensource.com>

On 09/22/11 15:35, Ian Campbell wrote:
> On Thu, 2011-09-22 at 13:01 +0100, Roger Pau Monne wrote:
>> # HG changeset patch
>> # User Roger Pau Monne<roger.pau@entel.upc.edu>
>> # 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@entel.upc.edu>
>
> 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@citrix.com>

Acked-by: Christoph Egger <Christoph.Egger@amd.com>

>>
>> 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:
>>


-- 
---to satisfy European Law for business letters:
Advanced Micro Devices GmbH
Einsteinring 24, 85689 Dornach b. Muenchen
Geschaeftsfuehrer: Alberto Bozzo, Andrew Bowd
Sitz: Dornach, Gemeinde Aschheim, Landkreis Muenchen
Registergericht Muenchen, HRB Nr. 43632

  reply	other threads:[~2011-09-22 14:07 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-09-22 12:01 [PATCH 0 of 6] Add NetBSD support for libxl Roger Pau Monne
2011-09-22 12:01 ` [PATCH 1 of 6] xenbackendd: fix incorrect usage of pidfile Roger Pau Monne
2011-09-22 13:23   ` Ian Campbell
2011-09-22 14:06     ` Christoph Egger
2011-09-22 12:01 ` [PATCH 2 of 6] hotplug: set hotplug-status to disconnected at removal Roger Pau Monne
2011-09-22 13:28   ` Ian Campbell
2011-09-22 12:01 ` [PATCH 3 of 6] xenbackendd: pass type of block device to hotplug script Roger Pau Monne
2011-09-22 13:35   ` Ian Campbell
2011-09-22 14:07     ` Christoph Egger [this message]
2011-09-22 12:01 ` [PATCH 4 of 6] libxl: fix for libxl not waiting for devices to disconnect Roger Pau Monne
2011-09-22 13:32   ` Ian Campbell
2011-09-22 12:01 ` [PATCH 5 of 6] libxl: add support for NetBSD to use disk images as a PHY backend Roger Pau Monne
2011-09-22 13:37   ` Ian Campbell
2011-09-22 12:01 ` [PATCH 6 of 6] libxl: use hotplug-status to synchronize the destruction of block devices Roger Pau Monne
2011-09-22 13:44   ` Ian Campbell
2011-09-23  8:08     ` Roger Pau Monné

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4E7B4135.2030209@amd.com \
    --to=christoph.egger@amd.com \
    --cc=Ian.Campbell@citrix.com \
    --cc=roger.pau@entel.upc.edu \
    --cc=xen-devel@lists.xensource.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.