[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v9 05/17] libxl: refactor disk addition to take a helper
Roger Pau Monne writes ("[PATCH v9 05/17] libxl: refactor disk addition to take a helper"): > Change libxl__device_disk_add to no longer take a xs transaction and > instead pass a helper for the local attach case that's used to get the > free vdev. ...> > This function contains some non-functional changes due to an > indentation change. > +/* Specific function called directly only by local disk attach, > + * all other users should instead use the regular > + * libxl__device_disk_add wrapper > + */ > +static int device_disk_add(libxl__gc *gc, uint32_t domid, > + libxl_device_disk *disk, > + char *(*fn)(libxl__gc *, const char *, > + xs_transaction_t), > + const char *blkdev_start) (I'm going to be quoting a diff -b.) A better comment would be one which described what `fn' does. Ie, rather than saying `this is internal to local attach', describe its semantics. Maybe also `fn' could have a better name. `get_vdev' ? And the context pointer should be a void*, not a const char*. `void *get_vdev_user' or something. ... > + if (fn) { > + assert(blkdev_start); > + disk->vdev = fn(gc, blkdev_start, t); > + if (disk->vdev == NULL) { > + LOG(ERROR, "libxl__alloc_vdev failed"); Surely this logging is (a) not necessarily true since the caller's fn may have nothing to do with libxl__alloc_vdev (b) should be done by fn anyway, since fn probably knows what is going on. > + if (front) > + flexarray_free(front); > front = flexarray_make(16, 1); Urgh, this is a bit unpleasant, isn't it. I can't see a better way to do it though. Thanks, Ian. _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |