On Wed, Mar 19, 2025 at 05:09:01PM -0600, Jim Fehlig wrote:
On 3/19/25 06:49, Daniel P. Berrangé wrote:
> On Wed, Mar 05, 2025 at 03:48:17PM -0700, Jim Fehlig via Devel wrote:
> > Move the code in qemuSaveImageCreate that opens, labels, and wraps the
> > save image fd to a helper function, providing more flexibility for
> > upcoming mapped-ram support.
> >
> > Signed-off-by: Jim Fehlig <jfehlig(a)suse.com>
> > ---
> > src/qemu/qemu_saveimage.c | 65 +++++++++++++++++++++++++++------------
> > 1 file changed, 45 insertions(+), 20 deletions(-)
> >
> > diff --git a/src/qemu/qemu_saveimage.c b/src/qemu/qemu_saveimage.c
> > index 29b4e39879..e3f6a0ad0f 100644
> > --- a/src/qemu/qemu_saveimage.c
> > +++ b/src/qemu/qemu_saveimage.c
> > @@ -425,6 +425,50 @@ qemuSaveImageDecompressionStop(virCommand *cmd,
> > }
> > +static int
> > +qemuSaveImageCreateFd(virQEMUDriver *driver,
> > + virDomainObj *vm,
> > + const char *path,
> > + virFileWrapperFd *wrapperFd,
>
> Doesn't this need to be virFileWrapperFd **, otherwise...
>
> > + bool *needUnlink,
> > + unsigned int flags)
> > +{
> > + g_autoptr(virQEMUDriverConfig) cfg = virQEMUDriverGetConfig(driver);
> > + int ret = -1;
> > + VIR_AUTOCLOSE fd = -1;
> > + int directFlag = 0;
> > + unsigned int wrapperFlags = VIR_FILE_WRAPPER_NON_BLOCKING;
> > +
> > + if (flags & VIR_DOMAIN_SAVE_BYPASS_CACHE) {
> > + wrapperFlags |= VIR_FILE_WRAPPER_BYPASS_CACHE;
> > + directFlag = virFileDirectFdFlag();
> > + if (directFlag < 0) {
> > + virReportError(VIR_ERR_OPERATION_FAILED, "%s",
> > + _("bypass cache unsupported by this
system"));
> > + return -1;
> > + }
> > + }
> > +
> > + fd = virQEMUFileOpenAs(cfg->user, cfg->group, false, path,
> > + O_WRONLY | O_TRUNC | O_CREAT | directFlag,
> > + needUnlink);
> > +
> > + if (fd < 0)
> > + return -1;
> > +
> > + if (qemuSecuritySetImageFDLabel(driver->securityManager, vm->def,
fd) < 0)
> > + return -1;
> > +
> > + if (!(wrapperFd = virFileWrapperFdNew(&fd, path, wrapperFlags)))
> > + return -1;
>
> ....this assignment won't be visible to the caller
Opps, which makes qemuDomainFileWrapperFDClose a NOP in all cases. I've
applied the below diff locally. Any need to respin this series?
..snip..
Reviewed-by: Daniel P. Berrangé <berrange(a)redhat.com>
With regards,
Daniel
--
|:
https://berrange.com -o-
https://www.flickr.com/photos/dberrange :|
|:
https://libvirt.org -o-
https://fstop138.berrange.com :|
|:
https://entangle-photo.org -o-
https://www.instagram.com/dberrange :|