[lxc-devel] [lxc/master] lxclock: bugfix and update some comment

0x0916 on Github lxc-bot at linuxcontainers.org
Mon Jul 3 07:51:29 UTC 2017


A non-text attachment was scrubbed...
Name: not available
Type: text/x-mailbox
Size: 441 bytes
Desc: not available
URL: <http://lists.linuxcontainers.org/pipermail/lxc-devel/attachments/20170703/bf3df2c1/attachment.bin>
-------------- next part --------------
From 98375790a4f06434abcd26c65995f45a530f0822 Mon Sep 17 00:00:00 2001
From: Long Wang <w at laoqinren.net>
Date: Mon, 3 Jul 2017 15:41:25 +0800
Subject: [PATCH 1/2] lxclock: return the right error when open lock file
 failed

Signed-off-by: Long Wang <w at laoqinren.net>
---
 src/lxc/lxclock.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/src/lxc/lxclock.c b/src/lxc/lxclock.c
index a29568dca..dd23530b0 100644
--- a/src/lxc/lxclock.c
+++ b/src/lxc/lxclock.c
@@ -224,6 +224,7 @@ int lxclock(struct lxc_lock *l, int timeout)
 					S_IWUSR | S_IRUSR);
 			if (l->u.f.fd == -1) {
 				ERROR("Error opening %s", l->u.f.fname);
+				saved_errno = errno;
 				goto out;
 			}
 		}

From ccfc84ca9f07e550b386d972397f09fb16ea803c Mon Sep 17 00:00:00 2001
From: Long Wang <w at laoqinren.net>
Date: Mon, 3 Jul 2017 15:43:34 +0800
Subject: [PATCH 2/2] lxclock: non-functional changes

This patch mainly updates comments based on the current code.

Signed-off-by: Long Wang <w at laoqinren.net>
---
 src/lxc/lxclock.c |  8 +++-----
 src/lxc/lxclock.h | 11 ++++++++---
 2 files changed, 11 insertions(+), 8 deletions(-)

diff --git a/src/lxc/lxclock.c b/src/lxc/lxclock.c
index dd23530b0..1f6b8438b 100644
--- a/src/lxc/lxclock.c
+++ b/src/lxc/lxclock.c
@@ -19,7 +19,6 @@
  */
 
 #define _GNU_SOURCE
-#include "lxclock.h"
 #include <malloc.h>
 #include <stdio.h>
 #include <errno.h>
@@ -30,6 +29,7 @@
 
 #include <lxc/lxccontainer.h>
 
+#include "lxclock.h"
 #include "utils.h"
 #include "log.h"
 
@@ -75,7 +75,7 @@ static void lock_mutex(pthread_mutex_t *l)
 	if ((ret = pthread_mutex_lock(l)) != 0) {
 		fprintf(stderr, "pthread_mutex_lock returned:%d %s\n", ret, strerror(ret));
 		dump_stacktrace();
-		exit(1);
+		exit(EXIT_FAILURE);
 	}
 }
 
@@ -86,7 +86,7 @@ static void unlock_mutex(pthread_mutex_t *l)
 	if ((ret = pthread_mutex_unlock(l)) != 0) {
 		fprintf(stderr, "pthread_mutex_unlock returned:%d %s\n", ret, strerror(ret));
 		dump_stacktrace();
-		exit(1);
+		exit(EXIT_FAILURE);
 	}
 }
 
@@ -211,12 +211,10 @@ int lxclock(struct lxc_lock *l, int timeout)
 		ret = -2;
 		if (timeout) {
 			ERROR("Error: timeout not supported with flock");
-			ret = -2;
 			goto out;
 		}
 		if (!l->u.f.fname) {
 			ERROR("Error: filename not set for flock");
-			ret = -2;
 			goto out;
 		}
 		if (l->u.f.fd == -1) {
diff --git a/src/lxc/lxclock.h b/src/lxc/lxclock.h
index e00dd8ac3..e097216ee 100644
--- a/src/lxc/lxclock.h
+++ b/src/lxc/lxclock.h
@@ -68,7 +68,8 @@ struct lxc_lock {
  * will be placed in \c l->u.sem.
  *
  * If \ref lxcpath and \ref name are given (both must be given if either is
- * given) then a lockfile is created as \c $lxcpath/$lxcname/locks/$name.
+ * given) then a lockfile is created as \c /run/lxc/lock/$lxcpath/.$name if root,
+ * or \c $XDG_RUNTIME_DIR/lxc/lock/$lxcpath/.$name if non-root.
  * The lock is used to protect the containers on-disk representation.
  *
  * \internal This function allocates the pathname for the given lock in memory
@@ -87,7 +88,8 @@ extern struct lxc_lock *lxc_newlock(const char *lxcpath, const char *name);
  * indefinite wait).
  *
  * \return \c 0 if lock obtained, \c -2 on failure to set timeout,
- *  or \c -1 on any other error (\c errno will be set by \c sem_wait(3)).
+ *  or \c -1 on any other error (\c errno will be set by \c sem_wait(3)
+ * or \c fcntl(2)).
  *
  * \note \p timeout is (currently?) only supported for privlock, not
  * for slock.  Since currently there is not a single use of the timeout
@@ -102,7 +104,7 @@ extern int lxclock(struct lxc_lock *lock, int timeout);
  * \param lock \ref lxc_lock.
  *
  * \return \c 0 on success, \c -2 if provided lock was not already held,
- * otherwise \c -1 with \c errno saved from \c flock(2) or sem_post function.
+ * otherwise \c -1 with \c errno saved from \c fcntl(2) or sem_post function.
  */
 extern int lxcunlock(struct lxc_lock *lock);
 
@@ -153,6 +155,9 @@ extern int container_disk_lock(struct lxc_container *c);
 
 /*!
  * \brief Unlock the containers disk data.
+ *
+ * \param c Container.
+ *
  */
 extern void container_disk_unlock(struct lxc_container *c);
 


More information about the lxc-devel mailing list