From: Serge Hallyn Date: Sat, 14 Sep 2013 18:09:53 +0000 (-0500) Subject: Revert "api_create and api_start: work toward making them thread-safe" X-Git-Tag: lxc-1.0.0.alpha2~115 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=4575a9f939a21e31231b2341dab2bffc341adcbd;p=thirdparty%2Flxc.git Revert "api_create and api_start: work toward making them thread-safe" This should deadlock with daemonized start due to af_unix changes. Do this later, but do it more carefully. This reverts commit 002f3cff4d83c0666cfda40599eded8e0d638c6c. --- diff --git a/src/lxc/af_unix.c b/src/lxc/af_unix.c index d6d18ca15..204658d32 100644 --- a/src/lxc/af_unix.c +++ b/src/lxc/af_unix.c @@ -30,7 +30,6 @@ #include #include "log.h" -#include "lxclock.h" lxc_log_define(lxc_af_unix, lxc); @@ -101,9 +100,7 @@ int lxc_af_unix_connect(const char *path) int fd; struct sockaddr_un addr; - process_lock(); fd = socket(PF_UNIX, SOCK_STREAM, 0); - process_unlock(); if (fd < 0) return -1; @@ -116,9 +113,7 @@ int lxc_af_unix_connect(const char *path) if (connect(fd, (struct sockaddr *)&addr, sizeof(addr))) { int tmp = errno; - process_lock(); close(fd); - process_unlock(); errno = tmp; return -1; } diff --git a/src/lxc/commands.c b/src/lxc/commands.c index c706a7a5d..f12ae2dec 100644 --- a/src/lxc/commands.c +++ b/src/lxc/commands.c @@ -46,7 +46,6 @@ #include "mainloop.h" #include "af_unix.h" #include "config.h" -#include "lxclock.h" /* * This file provides the different functions for clients to @@ -283,11 +282,8 @@ static int lxc_cmd(const char *name, struct lxc_cmd_rr *cmd, int *stopped, ret = lxc_cmd_rsp_recv(sock, cmd); out: - if (!stay_connected || ret <= 0) { - process_lock(); + if (!stay_connected || ret <= 0) close(sock); - process_unlock(); - } if (stay_connected && ret > 0) cmd->rsp.ret = sock; diff --git a/src/lxc/lxccontainer.c b/src/lxc/lxccontainer.c index 3c51c4ae3..79237dff4 100644 --- a/src/lxc/lxccontainer.c +++ b/src/lxc/lxccontainer.c @@ -665,9 +665,7 @@ static bool create_container_dir(struct lxc_container *c) free(s); return false; } - process_lock(); ret = mkdir(s, 0755); - process_unlock(); if (ret) { if (errno == EEXIST) ret = 0; @@ -1364,15 +1362,11 @@ static bool lxcapi_save_config(struct lxc_container *c, const char *alt_file) if (lret) return false; - process_lock(); fout = fopen(alt_file, "w"); - process_unlock(); if (!fout) goto out; write_config(fout, c->lxc_conf); - process_lock(); fclose(fout); - process_unlock(); ret = true; out: diff --git a/src/lxc/parse.c b/src/lxc/parse.c index 7875c8969..26cbbdd00 100644 --- a/src/lxc/parse.c +++ b/src/lxc/parse.c @@ -31,7 +31,6 @@ #include "parse.h" #include "config.h" #include "utils.h" -#include "lxclock.h" #include /* Workaround for the broken signature of alphasort() in bionic. @@ -91,9 +90,7 @@ int lxc_file_for_each_line(const char *file, lxc_file_cb callback, void *data) char *line = NULL; size_t len = 0; - process_lock(); f = fopen(file, "r"); - process_unlock(); if (!f) { SYSERROR("failed to open %s", file); return -1; @@ -107,9 +104,7 @@ int lxc_file_for_each_line(const char *file, lxc_file_cb callback, void *data) if (line) free(line); - process_lock(); fclose(f); - process_unlock(); return err; } diff --git a/src/lxc/utils.c b/src/lxc/utils.c index c561c004c..78b234d98 100644 --- a/src/lxc/utils.c +++ b/src/lxc/utils.c @@ -47,7 +47,6 @@ #include "utils.h" #include "log.h" -#include "lxclock.h" lxc_log_define(lxc_utils, lxc); @@ -410,10 +409,7 @@ int sha1sum_file(char *fnam, unsigned char *digest) if (!fnam) return -1; - process_lock(); - f = fopen_cloexec(fnam, "r"); - process_unlock(); - if (f < 0) { + if ((f = fopen_cloexec(fnam, "r")) < 0) { SYSERROR("Error opening template"); return -1; } @@ -443,10 +439,7 @@ int sha1sum_file(char *fnam, unsigned char *digest) fclose(f); return -1; } - process_lock(); - ret = fclose(f); - process_unlock(); - if (ret < 0) { + if (fclose(f) < 0) { SYSERROR("Failre closing template"); free(buf); return -1;