|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v2] Only call stat() when adding a disk if we expect a device to exist.
On Fri, 2013-04-26 at 13:17 +0100, Dave Scott wrote:
> 1. remove the cached stat results in disk_try_backend_args
> 2. in disk_try_backend(... PHY) we
> * fail if not RAW or empty (as before)
> * assume phy is ok if we have a hotplug script (as before)
> * if we're in LIBXL_TOOLSTACK_DOMID, stat() the disk and call
> libxl__try_backend
> * if we're not in LIBXL_TOOLSTACK_DOMID then assume phy is ok
> (basically we can't tell for sure)
Right, this is the case which concerned me. Roger probably has a better
handler than me but I think it is probably true to say that at least as
things stand phy was the only option in a driver domain. Maybe blktap1
(which libxl doesn't support) would have worked but blktap2 won't and
neither will qdisk.
I was looking at this as the most minimal fix:
@@ -236,9 +236,10 @@ int libxl__device_disk_set_backend(libxl__gc *gc, libxl_de
return ERROR_INVAL;
}
memset(&a.stab, 0, sizeof(a.stab));
- } else if (disk->backend == LIBXL_DISK_BACKEND_PHY &&
+ } else if ((disk->backend == LIBXL_DISK_BACKEND_PHY ||
+ disk->backend == LIBXL_DISK_BACKEND_UNKNOWN) &&
disk->backend_domid == LIBXL_TOOLSTACK_DOMID &&
!disk->script) {
if (stat(disk->pdev_path, &a.stab)) {
LIBXL__LOG_ERRNO(ctx, LIBXL__LOG_ERROR, "Disk vdev=%s "
"failed to stat: %s",
but I'm not 100% sure of this.
If it is right the arguable TAP should be included too, it's only qdisk
which can deal with things which aren't block or file (so the == PHY
should be a != QDISK).
Which begs the question whether your variant shouldn't also add a stat
in the tap case too?
> 2. in libxl__device_disk_set_backend we
> * keep the CDROM sanity check
> * don't do any stat()ing
> * immediately call disk_try_backend (probing if UNKNOWN as before)
>
> Does that make sense? I'll do a bit of testing now.
I think it might...
>
> Cheers,
> Dave
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |