On Wed, Sep 25, 2013 at 05:50:47PM +0800, Chen Hanxiao wrote: > From: Chen Hanxiao <chenhanxiao@xxxxxxxxxxxxxx> > > We refresh the status of hook scripts > only when start/restart libvirt or reloads its configuration. > But hooks scripts may be changed. > This function will help to check its existence. > And we do not need to start/restart libvirt if > we add/remove hook files. > > Signed-off-by: Chen Hanxiao <chenhanxiao@xxxxxxxxxxxxxx> > --- > src/util/virhook.c | 13 ++++++++++--- > 1 file changed, 10 insertions(+), 3 deletions(-) > > diff --git a/src/util/virhook.c b/src/util/virhook.c > index 159efdb..c4a1a15 100644 > --- a/src/util/virhook.c > +++ b/src/util/virhook.c > @@ -129,6 +129,12 @@ virHookCheck(int no, const char *driver) { > return ret; > } > > +static int > +virHookDriverCheck(int driver) { > + return virHookCheck(driver, > + virHookDriverTypeToString(driver)); > +} > + > /* > * virHookInitialize: > * > @@ -170,11 +176,12 @@ virHookPresent(int driver) { > if ((driver < VIR_HOOK_DRIVER_DAEMON) || > (driver >= VIR_HOOK_DRIVER_LAST)) > return 0; > - if (virHooksFound == -1) > + if (virHookDriverCheck(driver) != 1) { > + VIR_DEBUG("Driver %s hooks files not found", > + virHookDriverTypeToString(driver)); > return 0; > + } > > - if ((virHooksFound & (1 << driver)) == 0) > - return 0; > return 1; > } This is no more thread safe than your previous patch. Daniel -- |: http://berrange.com -o- http://www.flickr.com/photos/dberrange/ :| |: http://libvirt.org -o- http://virt-manager.org :| |: http://autobuild.org -o- http://search.cpan.org/~danberr/ :| |: http://entangle-photo.org -o- http://live.gnome.org/gtk-vnc :| -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list