From 48344381d7a87a3617ec14ffc9f2d9735805ada6 Mon Sep 17 00:00:00 2001 From: Andrew Deason Date: Thu, 30 May 2013 17:40:58 -0500 Subject: [PATCH] ihandle: Fix fdInUseCount leak on EMFILE Here, we close closeFd, but currently we don't decrement fdInUseCount. Since we retry the open immediately afterwards, this means we can leak fdInUseCount references. For example, if we retry this 5 times and get EMFILE on each attempt, we will close 5 FDs, but not decrement fdInUseCount at all. To fix this, decrement fdInUseCounter when we close a file for EMFILE. Change-Id: I347e37a8d670a6dde7e1d24eeb893c145d9e34e5 Reviewed-on: http://gerrit.openafs.org/9967 Tested-by: BuildBot Reviewed-by: Derrick Brashear --- src/vol/ihandle.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/vol/ihandle.c b/src/vol/ihandle.c index d903c016cf..8c8b82a3e0 100644 --- a/src/vol/ihandle.c +++ b/src/vol/ihandle.c @@ -395,6 +395,9 @@ ih_open_retry: fdP->fd_fd = INVALID_FD; IH_UNLOCK; OS_CLOSE(closeFd); + IH_LOCK; + fdInUseCount -= 1; + IH_UNLOCK; goto ih_open_retry; } } else {