On 07/04/2014 05:22 AM, Peter Krempa wrote: > Introduce flag for the block rebase API to allow the rebase operation to > leave the chain relatively addressed. Also adds a virsh switch to enable > this behavior. > --- > include/libvirt/libvirt.h.in | 3 +++ > src/libvirt.c | 3 +++ > tools/virsh-domain.c | 12 ++++++++++-- > tools/virsh.pod | 4 ++++ > 4 files changed, 20 insertions(+), 2 deletions(-) > > +++ b/src/libvirt.c > @@ -19721,6 +19721,9 @@ virDomainBlockPull(virDomainPtr dom, const char *disk, > * exists. If the job is aborted, a new one can be started later to > * resume from the same point. > * > + * If @flags contains VIR_DOMAIN_BLOCK_REBASE_RELATIVE, the name recorded > + * into the active disk as the location for @base will be kept relative. in 1/4, you had wording mentioning that the operation will fail if libvirt cannot infer a relative name. I think you should copy that wording here, too. > +++ b/tools/virsh-domain.c > @@ -1488,10 +1488,14 @@ blockJobImpl(vshControl *ctl, const vshCmd *cmd, > case VSH_CMD_BLOCK_JOB_PULL: > if (vshCommandOptStringReq(ctl, cmd, "base", &base) < 0) > goto cleanup; > - if (base) > - ret = virDomainBlockRebase(dom, path, base, bandwidth, 0); > + if (vshCommandOptBool(cmd, "keep-relative")) > + flags |= VIR_DOMAIN_BLOCK_REBASE_RELATIVE; Indentation looks off. > + > + if (base || flags) > + ret = virDomainBlockRebase(dom, path, base, bandwidth, flags); > else > ret = virDomainBlockPull(dom, path, bandwidth, 0); ACK with those 2 changes. -- Eric Blake eblake redhat com +1-919-301-3266 Libvirt virtualization library http://libvirt.org
Attachment:
signature.asc
Description: OpenPGP digital signature
-- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list