BUG/MINOR: fd: make sure my_closefrom() doesn't miss some FDs

The optimized my_closefrom() implementation introduced with previous commit
9188ac60e ("MINOR: fd: implement an optimised my_closefrom() function")
has a small bug causing it to miss some FDs at the end of each batch.
The reason is that poll() returns the number of non-zero events, so
it contains the size of the batch minus the FDs to close. Thus if the
FDs to close are at the beginning they'll be seen but if they're at the
end after all other closed ones, the returned count will not cover them.

No backport is needed.
diff --git a/src/fd.c b/src/fd.c
index 33b8900..7fdd56b 100644
--- a/src/fd.c
+++ b/src/fd.c
@@ -509,6 +509,9 @@
 				break;
 		} while (errno == EAGAIN || errno == EINTR || errno == ENOMEM);
 
+		if (ret)
+			ret = fd - start;
+
 		for (idx = 0; idx < ret; idx++) {
 			if (poll_events[idx].revents & POLLNVAL)
 				continue; /* already closed */