diff mbox

Avoiding extra iterations while closing file fd

Message ID 1394643267-1194-1-git-send-email-pagupta@redhat.com
State New
Headers show

Commit Message

Pankaj Gupta March 12, 2014, 4:54 p.m. UTC
Avoiding iterations for fd 0, 1 & 2 when we are closing file fds in child process.

Signed-off-by: Pankaj Gupta <pagupta@redhat.com>
---
 net/tap.c | 14 ++++----------
 1 file changed, 4 insertions(+), 10 deletions(-)

Comments

Stefan Hajnoczi March 13, 2014, 12:48 p.m. UTC | #1
On Wed, Mar 12, 2014 at 10:24:27PM +0530, Pankaj Gupta wrote:
> Avoiding iterations for fd 0, 1 & 2 when we are closing file fds in child process.
> 
> Signed-off-by: Pankaj Gupta <pagupta@redhat.com>
> ---
>  net/tap.c | 14 ++++----------
>  1 file changed, 4 insertions(+), 10 deletions(-)

POSIX defines the values of standard in, out, and error as 0, 1, and 2
constants.  So this patch is correct but it doesn't do anything useful.
This is something compiler can optimize (but speed doesn't even matter
here).

Please try to focus on patches that fix bugs, add features, or otherwise
add value - it takes the community time to review, test, and merge
patches.

Thanks, applied to my net-next tree:
https://github.com/stefanha/qemu/commits/net-next

Stefan
diff mbox

Patch

diff --git a/net/tap.c b/net/tap.c
index 2d5099b..3253838 100644
--- a/net/tap.c
+++ b/net/tap.c
@@ -364,11 +364,8 @@  static int launch_script(const char *setup_script, const char *ifname, int fd)
     if (pid == 0) {
         int open_max = sysconf(_SC_OPEN_MAX), i;
 
-        for (i = 0; i < open_max; i++) {
-            if (i != STDIN_FILENO &&
-                i != STDOUT_FILENO &&
-                i != STDERR_FILENO &&
-                i != fd) {
+        for (i = 3; i < open_max; i++) {
+            if (i != fd) {
                 close(i);
             }
         }
@@ -449,11 +446,8 @@  static int net_bridge_run_helper(const char *helper, const char *bridge)
         char br_buf[6+IFNAMSIZ] = {0};
         char helper_cmd[PATH_MAX + sizeof(fd_buf) + sizeof(br_buf) + 15];
 
-        for (i = 0; i < open_max; i++) {
-            if (i != STDIN_FILENO &&
-                i != STDOUT_FILENO &&
-                i != STDERR_FILENO &&
-                i != sv[1]) {
+        for (i = 3; i < open_max; i++) {
+            if (i != sv[1]) {
                 close(i);
             }
         }