Ryan Harper wrote: > I've applied the qemu and kernel side of this patch series and tested > this out using the sample code below. I've also reworked this example > into a virtioblk_id tool to work with udev to generate /dev/disk/by-id > links; I'll be submitting a patch set to linux-hotplug with these > changes, (and update for path_id) and some udev rules to > persistent-storage script to autogenerate by-id and by-path symlinks for > virtio-blk devices.
Sorry I didn't respond to you earlier. Actually the guest visible interface below was only intended as an example while waiting for (what I misinterpreted as Marc's intention to create) a /sys interface. I'm all for putting this issue to rest, but if we're going to live with an ioctl interface retrieving the id string, let's make it a little more friendly from the user's perspective. I have a slightly modified version which basically implements the same interface but expects the sizeof the entire array to be preset in the first element. Otherwise the user has no way of informing the driver of the destination's size, nor a way for the driver to indicate when the data won't fit in the area specified by the user. I should still have the patch on a test machine which ATM is unaccessible, but will have at first thing tomorrow. Let's hold off until then so we can address this nit and avoid yet another hiccup in nailing down this interface. Thanks, -john > I've also got a patch to apply ontop of the qemu patches to generate a > default serial number if one isn't specified (like we do for ide > devices). > > Anthony, is this series in your queue yet? > > Acked-by: Ryan Harper <ry...@us.ibm.com> > >> >> >> #include <stdio.h> >> #include <strings.h> >> #include <sys/types.h> >> #include <fcntl.h> >> #include <linux/hdreg.h> >> >> #define IOCTL_CMD 'VBID' >> >> main() >> { >> int fd, rv; >> char buf[512]; >> >> bzero(buf, sizeof (buf)); >> if ((fd = open("/dev/vda", O_RDONLY)) < 0) >> perror("open"); >> else if (ioctl(fd, IOCTL_CMD, buf) < 0) >> perror("ioctl"); >> else >> printf("[%s]\n", buf); >> } >> >> -- >> john.coo...@redhat.com >> > -- john.coo...@redhat.com