On Wed, 13 Jun 2012 18:07:43 -0400 Corey Bryant <coreyb@xxxxxxxxxxxxxxxxxx> wrote: > > > On 06/13/2012 04:47 PM, Eric Blake wrote: > > On 06/13/2012 02:25 PM, Corey Bryant wrote: > > > >>> Also, getfd automatically closes a fd if an existing fdname is passed > >>> again. > >>> I don't think this is a good behavior, I think pass-fd should fail > >>> instead > >>> (note that we can't fix getfd though). > >>> > >> > >> I agree. It makes sense to fail rather than blindly closing the > >> existing fd. It can be closed explicitly with closefd if the user wants > >> it closed. > > > > Hmm - what happens if I do 'pass-fd name', learn that qemu is using fd > > 42, then do 'getfd name'? I silently wipe out fd 42 and replace it with > > the new fd passed in by getfd. Which means my use of /dev/fd/42 will > > now be broken. > > > > Obviously that means that 'getfd' should NOT be used by any application > > using 'pass-fd', and that libvirt should NOT be reusing names (I think > > the latter is already true). But I agree that for back-compat we can't > > get rid of the current (evil) semantics of a duplicated 'getfd'. > > Yes, users need to be careful and understand how the commands work. I > don't think it's a hard rule that 'getfd' can't be used by an > application that uses 'pass-fd'. If it were, we could put the fds on > separate lists: > > struct Monitor { > ... > QLIST_HEAD(,mon_fd_t) fds; > + QLIST_HEAD(,mon_fd_t) pass_fds; > }; We'd a different closefd command if we do this. > But I don't think this is necessary, so I'll plan on documenting them well. Agreed, I don't think this is necessary. -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list