diff options
author | Alasdair Kergon <agk@redhat.com> | 2009-10-22 17:45:23 +0000 |
---|---|---|
committer | Alasdair Kergon <agk@redhat.com> | 2009-10-22 17:45:23 +0000 |
commit | cb63efc6f9566fe8ecc4103710511287742fceae (patch) | |
tree | f1c5c6ef0d2d4914f109226f5d8ff22df4d5d464 /daemons/clvmd/lvm-functions.c | |
parent | 06bb53b1e82450f100a46ff9c55e032ad1dd88a4 (diff) | |
download | lvm2-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.c | 9 |
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; } |