commit 5a1546f328b166871fbf0e0556b5a2aafba93d63 Author: David Weber Date: Mon May 14 09:43:27 2012 +0200 Add ignore param for readonly and shared disk in sanlock diff --git a/src/locking/lock_driver_sanlock.c b/src/locking/lock_driver_sanlock.c index d344d6a..57b688a 100644 --- a/src/locking/lock_driver_sanlock.c +++ b/src/locking/lock_driver_sanlock.c @@ -65,6 +65,7 @@ struct _virLockManagerSanlockDriver { bool requireLeaseForDisks; int hostID; bool autoDiskLease; + bool ignoreReadonlyShared; char *autoDiskLeasePath; }; @@ -114,6 +115,10 @@ static int virLockManagerSanlockLoadConfig(const char *configFile) CHECK_TYPE("auto_disk_leases", VIR_CONF_LONG); if (p) driver->autoDiskLease = p->l; + p = virConfGetValue(conf, "ignore_readonly_and_shared_disks"); + CHECK_TYPE("ignore_readonly_and_shared_disks", VIR_CONF_LONG); + if (p) driver->ignoreReadonlyShared = p->l; + p = virConfGetValue(conf, "disk_lease_dir"); CHECK_TYPE("disk_lease_dir", VIR_CONF_STRING); if (p && p->str) { @@ -624,6 +629,12 @@ static int virLockManagerSanlockAddResource(virLockManagerPtr lock, SANLK_MAX_RESOURCES); return -1; } + + if (((flags & VIR_LOCK_MANAGER_RESOURCE_READONLY) || + (flags &VIR_LOCK_MANAGER_RESOURCE_SHARED)) && + (driver->ignoreReadonlyShared)) { + return 0; + } if (flags & VIR_LOCK_MANAGER_RESOURCE_READONLY) { virLockError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", diff --git a/src/locking/sanlock.conf b/src/locking/sanlock.conf index efc35ee..5429522 100644 --- a/src/locking/sanlock.conf +++ b/src/locking/sanlock.conf @@ -52,3 +52,8 @@ # to enabled, otherwise it defaults to disabled. # #require_lease_for_disks = 1 + +# +# Ignore readonly and shared disks as they aren't supportet yet +# +#ignore_readonly_and_shared_disks = 1