From e5b5bb4de46a2a37c8ff392c456c306026517269 Mon Sep 17 00:00:00 2001 From: Csaba Henk Date: Tue, 3 Apr 2012 01:57:23 +0200 Subject: libglusterfs/run: POSIX compatible closing of child fds on non-Linux It just occurred to me that I realized there are POSIX features that let this be done cleanly. However, For Linux we keep the proc based approach to get more graceful strace logs. Change-Id: I6b473271b2adfd85cef6612eb65d88e5d00f5943 BUG: 764294 Signed-off-by: Csaba Henk Reviewed-on: http://review.gluster.com/3068 Tested-by: Gluster Build System Reviewed-by: Vijay Bellur --- libglusterfs/src/run.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'libglusterfs') diff --git a/libglusterfs/src/run.c b/libglusterfs/src/run.c index 0dbf33b9d96..f6f1931431b 100644 --- a/libglusterfs/src/run.c +++ b/libglusterfs/src/run.c @@ -31,6 +31,7 @@ #include #include #include +#include #ifdef RUN_STANDALONE #define GF_CALLOC(n, s, t) calloc(n, s) @@ -293,7 +294,11 @@ runner_start (runner_t *runner) } else ret = -1; #else - for (i = 3; i < 65536; i++) { + struct rlimit rl; + ret = getrlimit (RLIMIT_NOFILE, &rl); + GF_ASSERT (ret == 0); + + for (i = 3; i < rl.rlim_cur; i++) { if (i != xpi[1]) close (i); } -- cgit