[libvirt] [PATCH]lxc: don't always print debug log in lxcContainerSetID

Daniel P. Berrange berrange at redhat.com
Mon Oct 28 11:25:29 UTC 2013


On Wed, Oct 16, 2013 at 12:08:34PM +0800, Chen Hanxiao wrote:
> From: Chen Hanxiao <chenhanxiao at cn.fujitsu.com>
> 
> lxcContainerSetID is used for user namespace.
> If we don't enable user namespace, don't print debug log.
> 
> Signed-off-by: Chen Hanxiao <chenhanxiao at cn.fujitsu.com>
> ---
>  src/lxc/lxc_container.c | 14 ++++++++------
>  1 file changed, 8 insertions(+), 6 deletions(-)
> 
> diff --git a/src/lxc/lxc_container.c b/src/lxc/lxc_container.c
> index 56df69e..ed1fe29 100644
> --- a/src/lxc/lxc_container.c
> +++ b/src/lxc/lxc_container.c
> @@ -420,12 +420,14 @@ static int lxcContainerSetID(virDomainDefPtr def)
>       * for this container. And user namespace is only enabled
>       * when nuidmap&ngidmap is not zero */
>  
> -    VIR_DEBUG("Set UID/GID to 0/0");
> -    if (def->idmap.nuidmap &&
> -        virSetUIDGID(0, 0, NULL, 0) < 0) {
> -        virReportSystemError(errno, "%s",
> -                             _("setuid or setgid failed"));
> -        return -1;
> +    if (def->idmap.nuidmap) {
> +        if (virSetUIDGID(0, 0, NULL, 0) < 0) {
> +            virReportSystemError(errno, "%s",
> +                                 _("setuid or setgid failed"));
> +            return -1;
> +        } else {
> +            VIR_DEBUG("Set UID/GID to 0/0");
> +        }

It is better to print the debug message *before* the call to
virSetUIDGID, because then if it fails you have a log message
clearly showing where it got to.

As such I've pushed this instead:

@@ -420,9 +420,11 @@ static int lxcContainerSetID(virDomainDefPtr def)
      * for this container. And user namespace is only enabled
      * when nuidmap&ngidmap is not zero */
 
-    VIR_DEBUG("Set UID/GID to 0/0");
-    if (def->idmap.nuidmap &&
-        virSetUIDGID(0, 0, NULL, 0) < 0) {
+    if (!def->idmap.nuidmap)
+        return 0;
+
+    VIR_DEBUG("Setting UID/GID to 0/0");
+    if (virSetUIDGID(0, 0, NULL, 0) < 0) {
         virReportSystemError(errno, "%s",
                              _("setuid or setgid failed"));
         return -1;


Daniel
-- 
|: http://berrange.com      -o-    http://www.flickr.com/photos/dberrange/ :|
|: http://libvirt.org              -o-             http://virt-manager.org :|
|: http://autobuild.org       -o-         http://search.cpan.org/~danberr/ :|
|: http://entangle-photo.org       -o-       http://live.gnome.org/gtk-vnc :|




More information about the libvir-list mailing list