On 04/06/2011 02:59 AM, Daniel P. Berrange wrote: > On Tue, Apr 05, 2011 at 10:55:40AM -0600, Eric Blake wrote: >> On 04/05/2011 10:12 AM, Michal Privoznik wrote: >>> This is needed if we want to transfer a temporary file. If the >>> transfer is done with iohelper, we might run into a race condition, >>> where we unlink() file before iohelper is executed. >>> >>> * src/fdstream.c, src/fdstream.h, >>> src/util/iohelper.c: Add new option >>> * src/lxc/lxc_driver.c, src/qemu/qemu_driver.c, >>> src/storage/storage_driver.c, src/uml/uml_driver.c, >>> src/xen/xen_driver.c: Expand existing function calls >> >> I'm not convinced about this commit. We should instead be fixing >> iohelper to receive its file by fd inheritance, so that it doesn't have >> to open() in the first place. Then you don't need iohelper to worry >> about unlink(). > > My intention was that iohelper could also do uid/gid changes > in the future to cope with opening files on root squashing > NFS. For that we'd want it to be doing the open, not libvirtd Even if the parent process does virFileOpenAs? I think we've already got all the uid/gid changes covered in the parent process, without having to offload that into the child and coordinate a second open(); and even if we don't, fchmod/fchown are better than a second open()/chmod()/chown(). -- Eric Blake eblake@xxxxxxxxxx +1-801-349-2682 Libvirt virtualization library http://libvirt.org
Attachment:
signature.asc
Description: OpenPGP digital signature
-- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list