[libvirt] [PATCH 00/11] Adjust build/start format checking for fs, disk, and logical backends
jferlan at redhat.com
Thu Dec 15 21:42:05 UTC 2016
Two of these patches (2 and 10) are followups to no-overwrite patches
previously posted (I left links in the patches for reference).
Essentially this series works to unify the probing code from the file
system backend using blkid and the parted format reading code from the
disk backend in one common set of functions.
In doing so, the disk backend will now pick up the ability to use the
blkid 'partitions' APIs in order to "probe" the target device for a
valid/known partition format type. Additionally, the file system
probe will pick up a fallback to the parted mechanism from the disk
backend if the 'blkid' APIs are not built into the system.
A few extra bells/whistles were added for fs pool startup to ensure that
the format in the startup XML matches the format on the target disk,
which is essentially the mechanism the disk backend used (although it
was slightly broken).
Then in order to really pile on, the overwrite logic was added to the
logical pool which didn't have any such checking (both build and start).
Testing was done locally using an iSCSI device and laying down different
formats and seeing what would happen on various usages of the format
(with --overwrite and --no-overwrite).
John Ferlan (11):
storage: Introduce virStorageBackendDeviceProbeEmpty
storage: Fix implementation of no-overwrite for file system backend
storage: Add partition type checks for BLKID probing
storage: Add writelabel bool for virStorageBackendDeviceProbe
storage: For FS pool check for properly formatted target volume
storage: Move and rename disk backend label checking
storage: Adjust disk label found to match labels
storage: Clean up logical pool devices on build failure
storage: Extract logical device initialize into a helper
storage: Add overwrite flag checking for logical pool
storage: Validate the device formats at logical startup
src/libvirt_private.syms | 1 +
src/storage/storage_backend.c | 396 ++++++++++++++++++++++++++++++++++
src/storage/storage_backend.h | 4 +
src/storage/storage_backend_disk.c | 150 ++-----------
src/storage/storage_backend_fs.c | 118 ++--------
src/storage/storage_backend_fs.h | 5 -
src/storage/storage_backend_logical.c | 180 ++++++++++------
tools/virsh-pool.c | 2 +-
tools/virsh.pod | 42 ++--
9 files changed, 585 insertions(+), 313 deletions(-)
More information about the libvir-list