From 2e36a19e52d52d97b153c8e17ff639c9b217f57f Mon Sep 17 00:00:00 2001 From: Zdenek Kabelac Date: Tue, 11 Oct 2011 09:56:44 +0000 Subject: [PATCH] Add some fixme locking Code here is using thread write protected variable without locking. So add locking, for proper synchronization and a FIXME, since the code needs closer look. --- daemons/clvmd/clvmd.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/daemons/clvmd/clvmd.c b/daemons/clvmd/clvmd.c index 1bb7995d0..3199ac5d0 100644 --- a/daemons/clvmd/clvmd.c +++ b/daemons/clvmd/clvmd.c @@ -747,12 +747,16 @@ static int local_pipe_callback(struct local_client *thisfd, char *buf, send_local_reply(sock_client, status, sock_client->fd); else { + /* FIXME: closer inspect this code since state is write thread protected */ + pthread_mutex_lock(&sock_client->bits.localsock.mutex); if (sock_client->bits.localsock.state == POST_COMMAND) { + pthread_mutex_unlock(&sock_client->bits.localsock.mutex); send_local_reply(sock_client, 0, sock_client->fd); } else // PRE_COMMAND finished. { + pthread_mutex_unlock(&sock_client->bits.localsock.mutex); if ( (status = distribute_command(sock_client)) !=