Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
SUSE:SLE-12-SP1:Update
mdadm
0154-util-fix-wrong-return-value-of-cluster_get...
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File 0154-util-fix-wrong-return-value-of-cluster_get_dlmlock.patch of Package mdadm
From 32539f74d2d51d72b57f2314943ea8e0df6dab41 Mon Sep 17 00:00:00 2001 From: Guoqing Jiang <gqjiang@suse.com> Date: Wed, 20 Jan 2016 16:21:25 +0800 Subject: [PATCH 214/359] util: fix wrong return value of cluster_get_dlmlock References: bsc#1081910 Actually lksb.sb_status means that a node got the lock or not instead of the return value of dlm_lock. Signed-off-by: Guoqing Jiang <gqjiang@suse.com> Signed-off-by: Coly Li <colyli@suse.de> --- util.c | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/util.c b/util.c index f1b0b95..cf9572b 100644 --- a/util.c +++ b/util.c @@ -142,7 +142,7 @@ int cluster_get_dlmlock(int *lockid) dlm_lock_res->ls = dlm_hooks->create_lockspace(cluster_name, O_RDWR); if (!dlm_lock_res->ls) { pr_err("%s failed to create lockspace\n", cluster_name); - goto out; + return -ENOMEM; } /* Conversions need the lockid in the LKSB */ @@ -157,21 +157,15 @@ int cluster_get_dlmlock(int *lockid) dlm_lock_res, NULL, NULL); if (ret) { pr_err("error %d when get PW mode on lock %s\n", errno, str); - goto out; + dlm_hooks->release_lockspace(cluster_name, dlm_lock_res->ls, 1); + return ret; } /* Wait for it to complete */ poll_for_ast(dlm_lock_res->ls); *lockid = dlm_lock_res->lksb.sb_lkid; - errno = dlm_lock_res->lksb.sb_status; - if (errno) { - pr_err("error %d happened in ast with lock %s\n", errno, str); - goto out; - } - -out: - return ret; + return dlm_lock_res->lksb.sb_status; } int cluster_release_dlmlock(int lockid) -- 2.16.1
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor