From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?ISO-8859-1?Q?Roger_Pau_Monn=E9?= Subject: Re: [PATCH] libxl: do not call default block script Date: Fri, 10 May 2013 16:19:15 +0200 Message-ID: <518D01E3.2080104@citrix.com> References: <20130508050803.24369304@duch.mimuw.edu.pl> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <20130508050803.24369304@duch.mimuw.edu.pl> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: Marek Marczykowski Cc: Ian Jackson , Ian Campbell , "xen-devel@lists.xen.org" List-Id: xen-devel@lists.xenproject.org On 08/05/13 07:07, Marek Marczykowski wrote: > When user didn't specified disk->script, libxl writes physical-device > node itself, making script call redundant - especially the default one. This change will break NetBSD support, please also attach the necessary NetBSD change or at least mention it in the commit message, so it can be fixed. If I'm right, the block script does other things apart from writing the physical device major/minor, it also checks that no other domain is using this device. If you want to make the hotplug script call non redundant I would recommend to prevent libxl from witting physical device major/minor instead of removing the execution of the hotplug script. > Signed-off-by: Marek Marczykowski > --- > tools/libxl/libxl.c | 8 +++++--- > tools/libxl/libxl_linux.c | 5 ++--- > 2 files changed, 7 insertions(+), 6 deletions(-) > > diff --git a/tools/libxl/libxl.c b/tools/libxl/libxl.c > index 6733e71..58b7a03 100644 > --- a/tools/libxl/libxl.c > +++ b/tools/libxl/libxl.c > @@ -2093,9 +2093,11 @@ static void device_disk_add(libxl__egc *egc, uint32_t domid, > flexarray_append(back, "params"); > flexarray_append(back, dev); > > - script = libxl__abs_path(gc, disk->script?: "block", > - libxl__xen_script_dir_path()); > - flexarray_append_pair(back, "script", script); > + if (disk->script) { > + script = libxl__abs_path(gc, disk->script, > + libxl__xen_script_dir_path()); > + flexarray_append_pair(back, "script", script); > + } > > /* If the user did not supply a block script then we > * write the physical-device node ourselves. > diff --git a/tools/libxl/libxl_linux.c b/tools/libxl/libxl_linux.c > index 115332a..923a1d0 100644 > --- a/tools/libxl/libxl_linux.c > +++ b/tools/libxl/libxl_linux.c libxl_netbsd.c should also be modified to reflect this change. > @@ -334,9 +334,8 @@ static int libxl__hotplug_disk(libxl__gc *gc, libxl__device *dev, > script = libxl__xs_read(gc, XBT_NULL, > GCSPRINTF("%s/%s", be_path, "script")); > if (!script) { > - LOGEV(ERROR, errno, "unable to read script from %s", be_path); > - rc = ERROR_FAIL; > - goto error; > + LOG(INFO, "no script for %s", be_path); > + return 0; > } > > *env = get_hotplug_env(gc, script, dev); >