On Fri, May 17, 2024 at 07:43:35PM -0300, Fabiano Rosas wrote: > Daniel P. Berrangé <berra...@redhat.com> writes: > > > > > The only caller of monitor_fdset_dup_fd_add is qemu_open_internal > > and that has a "Error **errp" parameter. We should rewrite > > monitor_fdset_dup_fd_add to also have an "Error **errp" at which > > point we can actually report useful, actionable error messages > > from it. Errnos be gone ! > > I can do that, but qemu_open_old() does not pass the error in. Please > see if this works for you: > > -->8-- > From 16e333cc5aeca1fab3f75f79048c0ab0d62d5b08 Mon Sep 17 00:00:00 2001 > From: Fabiano Rosas <faro...@suse.de> > Date: Fri, 17 May 2024 19:30:39 -0300 > Subject: [PATCH] io: Stop using qemu_open_old in channel-file > > We want to make use of the Error object to report fdset errors from > qemu_open_internal() and passing the error pointer to qemu_open_old() > would require changing all callers. Move the file channel to the new > API instead. > > Signed-off-by: Fabiano Rosas <faro...@suse.de> > --- > io/channel-file.c | 8 +++++--- > 1 file changed, 5 insertions(+), 3 deletions(-) > > diff --git a/io/channel-file.c b/io/channel-file.c > index 6436cfb6ae..2ea8d08360 100644 > --- a/io/channel-file.c > +++ b/io/channel-file.c > @@ -68,11 +68,13 @@ qio_channel_file_new_path(const char *path, > > ioc = QIO_CHANNEL_FILE(object_new(TYPE_QIO_CHANNEL_FILE)); > > - ioc->fd = qemu_open_old(path, flags, mode); > + if (flags & O_CREAT) { > + ioc->fd = qemu_create(path, flags & ~O_CREAT, mode, errp); > + } else { > + ioc->fd = qemu_open(path, flags, errp); > + } > if (ioc->fd < 0) { > object_unref(OBJECT(ioc)); > - error_setg_errno(errp, errno, > - "Unable to open %s", path); > return NULL; > }
Reviewed-by: Daniel P. Berrangé <berra...@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 :|