]> git.ipfire.org Git - thirdparty/lxc.git/commitdiff
only warn for inherited file descriptors
authorGreg Kurz <gkurz@fr.ibm.com>
Tue, 13 Sep 2011 13:08:04 +0000 (15:08 +0200)
committerDaniel Lezcano <dlezcano@fr.ibm.com>
Tue, 13 Sep 2011 13:08:04 +0000 (15:08 +0200)
As discussed in thread:

http://sourceforge.net/mailarchive/forum.php?thread_name=4E5618C3.5060507%40free.fr&forum_name=lxc-devel

We think it's better for now to only warn the user about a fd leaking into
the container. Also remove the call to readlink() as it isn't really useful
now: since the container will start anyway, the user can look into /proc/../fd
or use lsof or whatever.

Signed-off-by: Greg Kurz <gkurz@fr.ibm.com>
Signed-off-by: Daniel Lezcano <dlezcano@fr.ibm.com>
src/lxc/start.c

index 6737a44d21df220ebefffa7cd684f541fbd1f2dd..9481a8ab0e0fc0218d38e93e40ef09eff2d60b34 100644 (file)
@@ -141,7 +141,6 @@ int lxc_check_inherited(int fd_to_ignore)
        struct dirent dirent, *direntp;
        int fd, fddir;
        DIR *dir;
-       int ret = 0;
 
        dir = opendir("/proc/self/fd");
        if (!dir) {
@@ -152,9 +151,6 @@ int lxc_check_inherited(int fd_to_ignore)
        fddir = dirfd(dir);
 
        while (!readdir_r(dir, &dirent, &direntp)) {
-               char procpath[64];
-               char path[PATH_MAX];
-
                if (!direntp)
                        break;
 
@@ -171,22 +167,12 @@ int lxc_check_inherited(int fd_to_ignore)
 
                if (match_fd(fd))
                        continue;
-               /*
-                * found inherited fd
-                */
-               ret = -1;
 
-               snprintf(procpath, sizeof(procpath), "/proc/self/fd/%d", fd);
-
-               if (readlink(procpath, path, sizeof(path)) == -1)
-                       ERROR("readlink(%s) failed : %m", procpath);
-               else
-                       ERROR("inherited fd %d on %s", fd, path);
+               WARN("inherited fd %d", fd);
        }
 
-       if (closedir(dir))
-               ERROR("failed to close directory");
-       return ret;
+       closedir(dir); /* cannot fail */
+       return 0;
 }
 
 static int setup_signal_fd(sigset_t *oldmask)