• M
    conf: add global check for duplicate drive addresses · 0f2721d0
    Marc Hartmayer 提交于
    Add a global check for duplicate drive addresses. This will fix the
    problem of duplicate disk and hostdev drive addresses.
    
    Example for duplicate drive addresses:
    <disk>
      ...
      <target name='sda'/>
    </disk>
    <disk>
      ...
      <target name='sdb'/>
      <address type='drive' controller=0 bus=0 target=0 unit=0/>
    </disk>
    
    Another example:
    <hostdev mode='subsystem' type='scsi' managed='no'>
      <source>
      ...
      </source>
      <address type='drive' controller='0' bus='0' target='0' unit='0'/>
    </hostdev>
    <hostdev mode='subsystem' type='scsi' managed='no'>
      <source>
      ...
      </source>
      <address type='drive' controller='0' bus='0' target='0' unit='0'/>
    </hostdev>
    
    Unfortunately the fixes (1b08cc17,
    8d46386b) weren't enough to catch these
    cases and it isn't possible to add additional checks in
    virDomainDeviceDefPostParseInternal() for SCSI hostdevs or
    virDomainDiskDefAssignAddress() for SCSI/IDE/FDC/SATA disks without
    adding another parse flag (virDomainDefParseFlags) to disable this
    validation while updating or detaching a disk or hostdev.
    Signed-off-by: NMarc Hartmayer <mhartmay@linux.vnet.ibm.com>
    Reviewed-by: NBoris Fiuczynski <fiuczy@linux.vnet.ibm.com>
    Signed-off-by: NMichal Privoznik <mprivozn@redhat.com>
    0f2721d0
domain_conf.c 815.8 KB