
On Thu, Feb 18, 2010 at 01:25:43PM -0500, Laine Stump wrote:
(This patchset requires that the virFork() patchset I send a couple hours ago be applied first, otherwise it will fail to apply).
virFileCreate just didn't have what it takes to get the job done. It turns out that there are other things that must be done to files as the qemu (or whatever) user, so this patchset adds a hook function that gets called during the child process. That solves a problem I found with creating raw storage volumes on root-squash NFS, and will also be used for an upcoming domain-save-on-root-squash-nfs patch.
I'm now beginning to think that virFileCreate/virFileOperation is just too narrow in scope, and it's getting too many options. Possibly it will be better to just make a simpler virCallasUID() function that gets a pointer to a function to execute in the child process as an argument and does nothing but fork/setuid/call the function. That function would then contain *all* of the file operations, including creating/opening/closing the file. But that's too large of a change to contemplate so soon before a release, and this functionality is necessary for two important bug fixes (mentioned above), so...
Okay, I agree that the functions are getting a bit too complex and some cleanup will be in order, but for the sake of the release I pushed the 2 patches which looks good to me, with the expectation that we can cleanup this next month, thanks ! Daniel -- Daniel Veillard | libxml Gnome XML XSLT toolkit http://xmlsoft.org/ daniel@veillard.com | Rpmfind RPM search engine http://rpmfind.net/ http://veillard.com/ | virtualization library http://libvirt.org/