The set of patches is trying to add 'startupPolicy' attribute support
to the source element of hard disks. Policy levels are using the
mandatory, requisite, optional levels as originally documented.
For the 'optional' policy, there is a little difference from CDROM and
Floppy which only drop its source path, for disks, if missing, the
checking function will drop their definitions, because qemu doesn't
allow missing source path for hard disk.
If guest is using per-device boot element for its devices, after dropping
one or more bootable device, the boot order will not be contiguous, the way
here I use is to reorder them to make them contiguous. In this way, I
introduce two new bit-operating functions
virBitmapNextLastSetBit: Search for the last set bit before
certain position.
virBitmapNextLastSetBit: Search for the last clear bit before
certain position.
Guannan Ren(5)
[PATCH 1/5] conf: add startupPolicy attribute for harddisk
[PATCH 2/5] util: add two functions to find last set or unset bit in
[PATCH 3/5] qemu: move disk presence checking before disk chain
[PATCH 4/5] qemu: drop disk definition if missing and reorder
[PATCH 5/5] event: add hard disk dropping event reason enum
docs/formatdomain.html.in | 9 +++++---
include/libvirt/libvirt.h.in | 1 +
src/conf/domain_conf.c | 21 +++++++++++++------
src/conf/domain_conf.h | 1 +
src/libvirt_private.syms | 2 ++
src/qemu/qemu_domain.c | 106
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----------
src/qemu/qemu_process.c | 7 ++++---
src/util/virbitmap.c | 96
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
src/util/virbitmap.h | 6 ++++++
tests/virbitmaptest.c | 51 +++++++++++++++++++++++++++++++++++++++++++++-
10 files changed, 276 insertions(+), 24 deletions(-)