From: Ben Pfaff Date: Fri, 26 Apr 2013 20:20:30 +0000 (-0700) Subject: netdev-vport: Make pid checking in set_tunnel_config() thread-safe X-Git-Tag: sliver-openvswitch-2.0.90-1~34^2~49 X-Git-Url: http://git.onelab.eu/?a=commitdiff_plain;ds=sidebyside;h=6027d03dc347e3ea4d965571382e4ed8545fbed2;p=sliver-openvswitch.git netdev-vport: Make pid checking in set_tunnel_config() thread-safe Signed-off-by: Ben Pfaff Acked-by: Andy Zhou --- diff --git a/lib/netdev-vport.c b/lib/netdev-vport.c index 885bf5e3a..4214b383d 100644 --- a/lib/netdev-vport.c +++ b/lib/netdev-vport.c @@ -413,13 +413,17 @@ set_tunnel_config(struct netdev *dev_, const struct smap *args) } if (tnl_cfg.ipsec) { + static pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER; static pid_t pid = 0; + + pthread_mutex_lock(&mutex); if (pid <= 0) { char *file_name = xasprintf("%s/%s", ovs_rundir(), "ovs-monitor-ipsec.pid"); pid = read_pidfile(file_name); free(file_name); } + pthread_mutex_unlock(&mutex); if (pid < 0) { VLOG_ERR("%s: IPsec requires the ovs-monitor-ipsec daemon",