Am 11.10.2012 17:04, schrieb Corey Bryant:
>
>
> On 10/11/2012 07:25 AM, Kevin Wolf wrote:
>> Am 10.10.2012 16:20, schrieb Corey Bryant:
>>> qmp_add_fd() gets an fd that was received over a socket with
>>> SCM_RIGHTS and adds it to an fd set. This patch adds support
>>> that will enable adding an fd that was inherited on the
>>> command line to an fd set.
>>>
>>> This patch also prevents removal of an fd from an fd set during
>>> initialization. This allows the fd to remain in the fd set after
>>> probing of the image file.
>>
>> "This patch also..." usually means that it should be split in two
>> patches. Though in this case I'd vote for immediately dropping the
>> second patch again: This makes the probing work with file descriptors
>> using a hack for a certain situation (namely qemu startup) and leaves
>> other cases (like hotplug) broken.
>
> I don't think hotplug is broken. In that case the fd will only be
> removed from the fd set if the following is true:
>
> (mon_fdset_fd->removed || (QLIST_EMPTY(&mon_fdset->dup_fds) &&
> mon_refcount == 0))
>
> We can ignore the removed part for now. What's important here is that
> if there are no dup_fd references and there is at least one monitor
> connected, an fd will *not* be removed.
Ah yes, that's the part I missed.
Then your approach of special-casing the command line is probably okay,
though I'd still want to change the probing mechanism to avoid the
reopen. Seems I need to find a better excuse to make someone do it. Meh. ;-)
Kevin