locking: Fix build with sanlock < 2.4

libvirt started using sanlock_killpath to implement on_lockfailure
action. Since sanlock_killpath was introduced in sanlock 2.4, libvirt
fails to build with older sanlock.
This commit is contained in:
Jiri Denemark 2012-10-16 12:41:20 +02:00
parent 7bd744c401
commit 5ce6d95eed
2 changed files with 20 additions and 0 deletions

View File

@ -1216,6 +1216,13 @@ if test "x$with_sanlock" != "xno"; then
if test "x$with_sanlock" = "xyes" ; then
AC_DEFINE_UNQUOTED([HAVE_SANLOCK], 1,
[whether Sanlock plugin for lock management is available])
AC_CHECK_LIB([sanlock_client], [sanlock_killpath],
[sanlock_killpath=yes], [sanlock_killpath=no])
if test "x$sanlock_killpath" = "xyes" ; then
AC_DEFINE_UNQUOTED([HAVE_SANLOCK_KILLPATH], 1,
[whether Sanlock supports sanlock_killpath])
fi
fi
fi
AM_CONDITIONAL([HAVE_SANLOCK], [test "x$with_sanlock" = "xyes"])

View File

@ -687,6 +687,7 @@ static int virLockManagerSanlockAddResource(virLockManagerPtr lock,
return 0;
}
#if HAVE_SANLOCK_KILLPATH
static int
virLockManagerSanlockRegisterKillscript(int sock,
const char *vmuri,
@ -762,6 +763,18 @@ cleanup:
VIR_FREE(args);
return ret;
}
#else
static int
virLockManagerSanlockRegisterKillscript(int sock ATTRIBUTE_UNUSED,
const char *vmuri ATTRIBUTE_UNUSED,
const char *uuidstr ATTRIBUTE_UNUSED,
virDomainLockFailureAction action ATTRIBUTE_UNUSED)
{
virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
_("sanlock is too old to support lock failure action"));
return -1;
}
#endif
static int virLockManagerSanlockAcquire(virLockManagerPtr lock,
const char *state,