[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

Re: [libvirt] [PATCH] Define SANLK_INQ_WAIT if missing in headers



On Thu, Dec 13, 2012 at 06:20:06PM +0100, Guido Günther wrote:
> so we can build with older sanlock (like 2.2)
> ---
> I've applied this to the current Debian builds since we're lagging a bit
> regarding sanlock but it might make sense to also support this upstream.
> Cheers,
>  -- Guido
> 
>  src/locking/lock_driver_sanlock.c |    3 +++
>  1 file changed, 3 insertions(+)
> 
> diff --git a/src/locking/lock_driver_sanlock.c b/src/locking/lock_driver_sanlock.c
> index 430e11e..84f81ec 100644
> --- a/src/locking/lock_driver_sanlock.c
> +++ b/src/locking/lock_driver_sanlock.c
> @@ -338,6 +338,9 @@ retry:
>      if ((rv = sanlock_add_lockspace(&ls, 0)) < 0) {
>          if (-rv == EINPROGRESS) {
>  #ifdef HAVE_SANLOCK_INQ_LOCKSPACE
> +#  ifndef SANLK_INQ_WAIT
> +#    define SANLK_INQ_WAIT 0x00000001
> +#  endif
>              /* we have this function which blocks until lockspace change the
>               * state. It returns 0 if lockspace has been added, -ENOENT if it
>               * hasn't. XXX should we goto retry? */

I don't think this is the right approach. The code relies on the fact
that INQ_WAIT actally works. Just passing this flag to an impl which
doesn't support it will not do the right thing.

This piece of code is already conditionalized on HAVE_SANLOCK_INQ_LOCKSPACE
to fallback to alternative busy-wait loop impl. We need to make sure that
the Debian falls back to the alternative impl.

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 :|


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]