From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 14358 invoked by alias); 11 Oct 2011 09:56:45 -0000 Received: (qmail 14341 invoked by uid 9737); 11 Oct 2011 09:56:45 -0000 Date: Tue, 11 Oct 2011 09:56:00 -0000 Message-ID: <20111011095645.14339.qmail@sourceware.org> From: zkabelac@sourceware.org To: lvm-devel@redhat.com, lvm2-cvs@sourceware.org Subject: LVM2/daemons/clvmd clvmd.c Mailing-List: contact lvm2-cvs-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Post: List-Help: , Sender: lvm2-cvs-owner@sourceware.org X-SW-Source: 2011-10/txt/msg00041.txt.bz2 CVSROOT: /cvs/lvm2 Module name: LVM2 Changes by: zkabelac@sourceware.org 2011-10-11 09:56:45 Modified files: daemons/clvmd : clvmd.c Log message: 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. Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/daemons/clvmd/clvmd.c.diff?cvsroot=lvm2&r1=1.114&r2=1.115 --- LVM2/daemons/clvmd/clvmd.c 2011/10/11 09:54:39 1.114 +++ LVM2/daemons/clvmd/clvmd.c 2011/10/11 09:56:44 1.115 @@ -747,12 +747,16 @@ 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)) !=