[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v5 1/8] monitor: simplify functions for getting a dup'd fdset
From: |
Daniel P . Berrangé |
Subject: |
Re: [PATCH v5 1/8] monitor: simplify functions for getting a dup'd fdset entry |
Date: |
Thu, 3 Sep 2020 11:48:56 +0100 |
User-agent: |
Mutt/1.14.6 (2020-07-11) |
On Thu, Sep 03, 2020 at 10:52:40AM +0200, Markus Armbruster wrote:
> Daniel P. Berrangé <berrange@redhat.com> writes:
>
> > Currently code has to call monitor_fdset_get_fd, then dup
> > the return fd, and then add the duplicate FD back into the
> > fdset. This dance is overly verbose for the caller and
> > introduces extra failure modes which can be avoided by
> > folding all the logic into monitor_fdset_dup_fd_add and
> > removing monitor_fdset_get_fd entirely.
> >
> > Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
> > ---
> > include/monitor/monitor.h | 3 +-
> > include/qemu/osdep.h | 1 +
> > monitor/misc.c | 58 +++++++++++++++++----------------------
> > stubs/fdset.c | 8 ++----
> > util/osdep.c | 19 ++-----------
> > 5 files changed, 32 insertions(+), 57 deletions(-)
> >
> > -int monitor_fdset_dup_fd_add(int64_t fdset_id, int dup_fd)
> > -{
> > - MonFdset *mon_fdset;
> > - MonFdsetFd *mon_fdset_fd_dup;
> > -
> > - qemu_mutex_lock(&mon_fdsets_lock);
> > - QLIST_FOREACH(mon_fdset, &mon_fdsets, next) {
> > - if (mon_fdset->id != fdset_id) {
> > - continue;
> > + if (fd == -1) {
> > + errno = EINVAL;
> > + return -1;
>
> Missing qemu_mutex_unlock().
>
> > }
>
> Old monitor_fdset_get_fd() returns -ENOENT when @fdset_id does not
> exist, and -EACCES when it doesn't contain a file descriptor matching
> @flags.
>
> The new code seems to use EINVAL for the latter case. Intentional?
No, its a mistake.
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 :|
- [PATCH v5 0/8] block: improve error reporting for unsupported O_DIRECT, Daniel P . Berrangé, 2020/09/02
- [PATCH v5 1/8] monitor: simplify functions for getting a dup'd fdset entry, Daniel P . Berrangé, 2020/09/02
- [PATCH v5 2/8] util: split off a helper for dealing with O_CLOEXEC flag, Daniel P . Berrangé, 2020/09/02
- [PATCH v5 3/8] util: rename qemu_open() to qemu_open_old(), Daniel P . Berrangé, 2020/09/02
- [PATCH v5 4/8] util: refactor qemu_open_old to split off variadic args handling, Daniel P . Berrangé, 2020/09/02
- [PATCH v5 5/8] util: add Error object for qemu_open_internal error reporting, Daniel P . Berrangé, 2020/09/02
- [PATCH v5 6/8] util: introduce qemu_open and qemu_create with error reporting, Daniel P . Berrangé, 2020/09/02