[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH] libxl: do not call default block script



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 <marmarek@xxxxxxxxxxxxxxxxxxxxxx>
> ---
>  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);
> 


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.