Release only specific sanlock resource

This is a patch for bug 826704
All sanlock resources get released when hot-dettaching a disk from the domain
because virLockManagerSanlockRelease uses the wrong function parameters/flags.
With the patch only the resources that should be released are cleaned up.

Signed-off-by: Frido Roose <frido.roose@gmail.com>
This commit is contained in:
Frido Roose 2012-08-13 12:54:38 +02:00 committed by Eric Blake
parent e9a24e3e3d
commit a58cb1ac40

View File

@ -814,7 +814,7 @@ static int virLockManagerSanlockRelease(virLockManagerPtr lock,
unsigned int flags)
{
virLockManagerSanlockPrivatePtr priv = lock->privateData;
int res_count;
int res_count = priv->res_count;
int rv;
virCheckFlags(0, -1);
@ -834,7 +834,8 @@ static int virLockManagerSanlockRelease(virLockManagerPtr lock,
VIR_FREE(*state);
}
if ((rv = sanlock_release(-1, priv->vm_pid, SANLK_REL_ALL, 0, NULL)) < 0) {
if ((rv = sanlock_release(-1, priv->vm_pid, 0, res_count,
priv->res_args)) < 0) {
if (rv <= -200)
virReportError(VIR_ERR_INTERNAL_ERROR,
_("Failed to release lock: error %d"), rv);