On 02/21/2018 01:11 PM, Michal Privoznik wrote: > This is a definition that holds information on SCSI persistent > reservation settings. The XML part looks like this: > > <reservations enabled='yes' managed='no'> > <source type='unix' path='/path/to/qemu-pr-helper.sock' mode='client'/> > </reservations> > > If @managed is set to 'yes' then the <source/> is not parsed. > This design was agreed on here: > > https://www.redhat.com/archives/libvir-list/2017-November/msg01005.html > > Signed-off-by: Michal Privoznik <mprivozn@xxxxxxxxxx> > --- > docs/formatdomain.html.in | 25 +++- > docs/schemas/domaincommon.rng | 34 +---- > docs/schemas/storagecommon.rng | 50 +++++++ > src/conf/domain_conf.c | 36 +++++ > src/libvirt_private.syms | 3 + > src/util/virstoragefile.c | 148 +++++++++++++++++++++ > src/util/virstoragefile.h | 15 +++ > .../disk-virtio-scsi-reservations-not-managed.xml | 40 ++++++ > .../disk-virtio-scsi-reservations.xml | 38 ++++++ > .../disk-virtio-scsi-reservations-not-managed.xml | 1 + > .../disk-virtio-scsi-reservations.xml | 1 + > tests/qemuxml2xmltest.c | 4 + > 12 files changed, 364 insertions(+), 31 deletions(-) > create mode 100644 tests/qemuxml2argvdata/disk-virtio-scsi-reservations-not-managed.xml > create mode 100644 tests/qemuxml2argvdata/disk-virtio-scsi-reservations.xml > create mode 120000 tests/qemuxml2xmloutdata/disk-virtio-scsi-reservations-not-managed.xml > create mode 120000 tests/qemuxml2xmloutdata/disk-virtio-scsi-reservations.xml > Something else that dawned on me when looking at the original series. [...] > diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c > index f2ddde7a3..a1a6b0162 100644 > --- a/src/conf/domain_conf.c > +++ b/src/conf/domain_conf.c > @@ -5199,6 +5199,13 @@ virDomainDiskDefValidate(const virDomainDiskDef *disk) > } > } > > + if (disk->src->pr && > + disk->device != VIR_DOMAIN_DISK_DEVICE_LUN) { > + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", > + _("<reservations/> allowed only for lun disks")); > + return -1; > + } > + If someone is using a storage pool such as: <disk type='volume' device='lun'> <driver name='qemu' type='raw'/> <source pool='sourcepool' volume='unit:0:4:0'/> <target dev='sda' bus='scsi'/> </disk> then how do they define/use the PR? For LUN's like iSCSI and NPIV it can be easier or even preferred to use the storage pool as opposed to using the <source protocol=..."/> syntax. Search on iscsi in the formatdomain page for iSCSI syntax examples. See: https://wiki.libvirt.org/page/NPIV_in_libvirt for the NPIV syntax examples. John > /* Reject disks with a bus type that is not compatible with the > * given address type. The function considers only buses that are > * handled in common code. For other bus types it's not possible > @@ -8613,6 +8620,29 @@ virDomainDiskSourcePrivateDataParse(xmlXPathContextPtr ctxt, > } > > [...] -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list