lxclock: cleanup lxc_newlock()

parent b19fbb7f
...@@ -17,6 +17,7 @@ ...@@ -17,6 +17,7 @@
#include "config.h" #include "config.h"
#include "log.h" #include "log.h"
#include "lxclock.h" #include "lxclock.h"
#include "memory_utils.h"
#include "utils.h" #include "utils.h"
#ifdef MUTEX_DEBUGGING #ifdef MUTEX_DEBUGGING
...@@ -149,35 +150,26 @@ static sem_t *lxc_new_unnamed_sem(void) ...@@ -149,35 +150,26 @@ static sem_t *lxc_new_unnamed_sem(void)
struct lxc_lock *lxc_newlock(const char *lxcpath, const char *name) struct lxc_lock *lxc_newlock(const char *lxcpath, const char *name)
{ {
struct lxc_lock *l; __do_free struct lxc_lock *l = NULL;
l = malloc(sizeof(*l)); l = zalloc(sizeof(*l));
if (!l) if (!l)
goto on_error; return ret_set_errno(NULL, ENOMEM);
if (!name) { if (name) {
l->type = LXC_LOCK_FLOCK;
l->u.f.fname = lxclock_name(lxcpath, name);
if (!l->u.f.fname)
return ret_set_errno(NULL, ENOMEM);
l->u.f.fd = -EBADF;
} else {
l->type = LXC_LOCK_ANON_SEM; l->type = LXC_LOCK_ANON_SEM;
l->u.sem = lxc_new_unnamed_sem(); l->u.sem = lxc_new_unnamed_sem();
if (!l->u.sem) { if (!l->u.sem)
free(l); return ret_set_errno(NULL, ENOMEM);
l = NULL;
}
goto on_error;
} }
l->type = LXC_LOCK_FLOCK; return move_ptr(l);
l->u.f.fname = lxclock_name(lxcpath, name);
if (!l->u.f.fname) {
free(l);
l = NULL;
goto on_error;
}
l->u.f.fd = -1;
on_error:
return l;
} }
int lxclock(struct lxc_lock *l, int timeout) int lxclock(struct lxc_lock *l, int timeout)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment