summaryrefslogtreecommitdiffstats
path: root/daemons/clvmd/clvmd-command.c
diff options
context:
space:
mode:
Diffstat (limited to 'daemons/clvmd/clvmd-command.c')
-rw-r--r--daemons/clvmd/clvmd-command.c18
1 files changed, 10 insertions, 8 deletions
diff --git a/daemons/clvmd/clvmd-command.c b/daemons/clvmd/clvmd-command.c
index e6c5da10..fc2c0bad 100644
--- a/daemons/clvmd/clvmd-command.c
+++ b/daemons/clvmd/clvmd-command.c
@@ -341,23 +341,25 @@ int do_post_command(struct local_client *client)
/* Called when the client is about to be deleted */
void cmd_client_cleanup(struct local_client *client)
{
- if (client->bits.localsock.private) {
-
struct dm_hash_node *v;
- struct dm_hash_table *lock_hash =
- (struct dm_hash_table *)client->bits.localsock.private;
+ struct dm_hash_table *lock_hash;
+ int lkid;
+ char *lockname;
- dm_hash_iterate(v, lock_hash) {
- int lkid = (int)(long)dm_hash_get_data(lock_hash, v);
- char *lockname = dm_hash_get_key(lock_hash, v);
+ if (!client->bits.localsock.private)
+ return;
+ lock_hash = (struct dm_hash_table *)client->bits.localsock.private;
+
+ dm_hash_iterate(v, lock_hash) {
+ lkid = (int)(long)dm_hash_get_data(lock_hash, v);
+ lockname = dm_hash_get_key(lock_hash, v);
DEBUGLOG("cleanup: Unlocking lock %s %x\n", lockname, lkid);
sync_unlock(lockname, lkid);
}
dm_hash_destroy(lock_hash);
client->bits.localsock.private = 0;
- }
}