libvirt/src/conf
John Ferlan 2c52ec43aa storage: Fix regression cloning volume into a logical pool
https://bugzilla.redhat.com/show_bug.cgi?id=1318993

Commit id 'dd519a294' caused a regression cloning a volume into a
logical pool by removing just the 'allocation' adjustment during
storageVolCreateXMLFrom. Combined with the change to not require the
new volume input XML to have a capacity listed (commit id 'e3f1d2a8')
left the possibility that a zero allocation value (e.g., not provided)
would create a thin/sparse logical volume. When a thin lv becomes fully
populated, then LVM sets the partition 'inactive' and the subsequent
fdatasync() fails.

Add a new 'has_allocation' flag to be set at XML parse time to indicate
that allocation was provided. This is done so that if it's not provided
the create-from code uses the capacity value since we document that if
omitted, the volume will be fully allocated at time of creation.

For a logical backend, that creation time is 'createVol', while for a
file backend, creation doesn't set the size, but the 'createRaw' called
during buildVolFrom will decide whether the file is sparse or not based
on the provided capacity and allocation value.

For volume clones that provide different allocation and capacity values
to allow for sparse files, there is no change.
2016-05-11 09:06:26 -04:00
..
capabilities.c conf: add net device prefix to capabilities 2016-02-04 11:15:51 +00:00
capabilities.h headers: Remove unnecessary keyword extern from function declaration 2016-05-11 09:06:32 +02:00
cpu_conf.c XML: escape strings where we should do it 2015-05-12 12:05:07 +02:00
cpu_conf.h conf: Move all NUMA configuration to virDomainNuma 2015-02-20 17:50:08 +01:00
device_conf.c Change virDevicePCIAddress to virPCIDeviceAddress 2016-05-02 15:46:23 +02:00
device_conf.h Change virDevicePCIAddress to virPCIDeviceAddress 2016-05-02 15:46:23 +02:00
domain_addr.c Change virDevicePCIAddress to virPCIDeviceAddress 2016-05-02 15:46:23 +02:00
domain_addr.h Change virDevicePCIAddress to virPCIDeviceAddress 2016-05-02 15:46:23 +02:00
domain_audit.c Include sysmacros.h where needed 2016-04-18 20:36:57 +02:00
domain_audit.h qemu: Add support to Add/Delete IOThreads 2015-04-27 12:36:36 -04:00
domain_capabilities.c domaincaps: Report video modelType 2016-05-09 16:05:31 -04:00
domain_capabilities.h conf: don't redefine virDomainCapsDeviceHostdev 2016-05-10 07:12:10 +03:00
domain_conf.c conf: make virDomainDefAddController() public 2016-05-10 17:03:11 -04:00
domain_conf.h conf: make virDomainDefAddController() public 2016-05-10 17:03:11 -04:00
domain_event.c Add VIR_DOMAIN_EVENT_ID_DEVICE_REMOVAL_FAILED event 2016-04-13 13:26:29 +02:00
domain_event.h Add VIR_DOMAIN_EVENT_ID_DEVICE_REMOVAL_FAILED event 2016-04-13 13:26:29 +02:00
domain_nwfilter.c Remove use of nwfilterPrivateData from nwfilter driver 2015-01-27 12:02:03 +00:00
domain_nwfilter.h Remove use of nwfilterPrivateData from nwfilter driver 2015-01-27 12:02:03 +00:00
interface_conf.c interface: don't error out if a bond has no interfaces 2015-05-27 14:25:45 -04:00
interface_conf.h maint: Prohibit "devname" by a syntax check rules 2014-10-01 16:39:01 +02:00
netdev_bandwidth_conf.c virNetDevBandwidthParseRate: Reject negative values 2015-08-10 13:47:48 +02:00
netdev_bandwidth_conf.h qemu: add udp interface support 2015-09-02 10:17:50 +02:00
netdev_vlan_conf.c Indent top-level labels by one space in src/conf/ 2014-03-25 14:58:38 +01:00
netdev_vlan_conf.h maint: avoid 'const fooPtr' in conf 2013-10-14 14:34:38 -06:00
netdev_vport_profile_conf.c docs: schema and docs for the midonet virtualport type 2015-03-17 13:09:05 -04:00
netdev_vport_profile_conf.h Rename xml.{c,h} to virxml.{c,h} 2012-12-21 11:19:50 +00:00
network_conf.c conf: network: reject name containing '/' 2016-05-02 10:06:04 -04:00
network_conf.h Change virDevicePCIAddress to virPCIDeviceAddress 2016-05-02 15:46:23 +02:00
network_event.c Replace virNetworkFree with virObjectUnref 2014-12-02 11:03:40 -05:00
network_event.h event: move event filtering to daemon (regression fix) 2014-02-05 08:03:31 -07:00
networkcommon_conf.c network: Resolve Coverity FORWARD_NULL 2015-01-16 06:40:15 -05:00
networkcommon_conf.h Use the network route definitions for domains 2015-01-16 10:14:03 +01:00
node_device_conf.c conf: Fix error path in virNodeDevPCICapabilityParseXML 2016-05-09 19:33:57 -04:00
node_device_conf.h nodedev: Expose PCI header type 2016-03-18 17:35:06 +01:00
numa_conf.c Drop inline keyword from some functions. 2016-03-03 14:39:57 +01:00
numa_conf.h numa_conf: Introduce virDomainNumaGetMaxCPUID 2015-08-07 17:19:03 +02:00
nwfilter_conf.c nwfilter: Save config to disk if we generated a UUID 2016-05-02 10:06:04 -04:00
nwfilter_conf.h nwfilter: Save config to disk if we generated a UUID 2016-05-02 10:06:04 -04:00
nwfilter_ipaddrmap.c Remove pointless storage of var names in virNWFilterHashTable 2014-04-25 15:44:09 +01:00
nwfilter_ipaddrmap.h maint: fix up copyright notice inconsistencies 2012-09-20 16:30:55 -06:00
nwfilter_params.c util: Add a return value to void hash iterators 2016-02-17 12:46:34 +01:00
nwfilter_params.h nwfilter: Change 'index' to 'idx' 2015-04-14 11:18:28 -04:00
object_event_private.h event: prepare client to track domain callbackID 2014-02-12 10:48:15 -07:00
object_event.c Remove unnecessary curly brackets in src/conf/ 2014-11-14 17:13:01 +01:00
object_event.h event: add notion of remoteID for filtering client network events 2014-01-15 13:55:21 -07:00
secret_conf.c secret: Change virSecretDef variable names 2016-04-25 15:45:29 -04:00
secret_conf.h secret: Change virSecretDef variable names 2016-04-25 15:45:29 -04:00
snapshot_conf.c util: Add a return value to void hash iterators 2016-02-17 12:46:34 +01:00
snapshot_conf.h conf: add caps to virDomainSnapshotDefFormat 2016-02-05 10:57:39 +00:00
storage_conf.c storage: Fix regression cloning volume into a logical pool 2016-05-11 09:06:26 -04:00
storage_conf.h Change virDevicePCIAddress to virPCIDeviceAddress 2016-05-02 15:46:23 +02:00
virchrdev.c util: Add a return value to void hash iterators 2016-02-17 12:46:34 +01:00
virchrdev.h conf: Add unix socket support to virChrdevOpen 2013-01-04 18:07:11 -07:00
virdomainobjlist.c util: Add a return value to void hash iterators 2016-02-17 12:46:34 +01:00
virdomainobjlist.h qemu: qemuDomainRename and virDomainObjListNumOfDomains ABBA deadlock fix 2016-02-03 15:20:11 +01:00
virsecretobj.c secret: Change virSecretDef variable names 2016-04-25 15:45:29 -04:00
virsecretobj.h secret: Introduce virSecretObjGetValue and virSecretObjGetValueSize 2016-04-25 15:45:29 -04:00