summaryrefslogtreecommitdiffstats
path: root/daemons/clvmd/lvm-functions.c
diff options
context:
space:
mode:
authorAlasdair Kergon <agk@redhat.com>2009-10-22 17:45:23 +0000
committerAlasdair Kergon <agk@redhat.com>2009-10-22 17:45:23 +0000
commitcb63efc6f9566fe8ecc4103710511287742fceae (patch)
treef1c5c6ef0d2d4914f109226f5d8ff22df4d5d464 /daemons/clvmd/lvm-functions.c
parent06bb53b1e82450f100a46ff9c55e032ad1dd88a4 (diff)
downloadlvm2-cb63efc6f9566fe8ecc4103710511287742fceae.tar.gz
lvm2-cb63efc6f9566fe8ecc4103710511287742fceae.tar.xz
lvm2-cb63efc6f9566fe8ecc4103710511287742fceae.zip
Fix clvmd segfault when refresh_toolcontext fails. (brassow, bz 506986)
Diffstat (limited to 'daemons/clvmd/lvm-functions.c')
-rw-r--r--daemons/clvmd/lvm-functions.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/daemons/clvmd/lvm-functions.c b/daemons/clvmd/lvm-functions.c
index a974fadf..e56d11b4 100644
--- a/daemons/clvmd/lvm-functions.c
+++ b/daemons/clvmd/lvm-functions.c
@@ -601,20 +601,23 @@ int do_check_lvm1(const char *vgname)
int do_refresh_cache()
{
- int ret;
DEBUGLOG("Refreshing context\n");
log_notice("Refreshing context");
pthread_mutex_lock(&lvm_lock);
- ret = refresh_toolcontext(cmd);
+ if (!refresh_toolcontext(cmd)) {
+ pthread_mutex_unlock(&lvm_lock);
+ return -1;
+ }
+
init_full_scan_done(0);
lvmcache_label_scan(cmd, 2);
dm_pool_empty(cmd->mem);
pthread_mutex_unlock(&lvm_lock);
- return ret==1?0:-1;
+ return 0;
}