summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSimon Rettberg2019-08-28 21:06:45 +0200
committerSimon Rettberg2019-08-28 21:06:45 +0200
commitf8136a0b92a9293e7eb71aea27d9da6b6a163d94 (patch)
tree964629329ef6f66602876c2651757c1c04b06be4
parentMerge branch 'master' into atomic (diff)
downloaddnbd3-f8136a0b92a9293e7eb71aea27d9da6b6a163d94.tar.gz
dnbd3-f8136a0b92a9293e7eb71aea27d9da6b6a163d94.tar.xz
dnbd3-f8136a0b92a9293e7eb71aea27d9da6b6a163d94.zip
[SERVER] Reintroduce check whether readFd is actually != -1
-rw-r--r--src/server/image.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/server/image.c b/src/server/image.c
index 248c12c..4eab1d2 100644
--- a/src/server/image.c
+++ b/src/server/image.c
@@ -1725,8 +1725,10 @@ static void* closeUnusedFds(void* nix UNUSED)
mutex_lock( &imageListLock );
for ( int i = 0; i < _num_images; ++i ) {
dnbd3_image_t * const image = _images[i];
- if ( image == NULL )
+ if ( image == NULL || image->readFd == -1 )
continue;
+ // TODO: Also close for idle uplinks (uplink_connectionShouldShutdown)
+ // TODO: And close writeFd for idle uplinks....
if ( image->users == 0 && image->uplinkref == NULL && timing_reached( &image->atime, &deadline ) ) {
logadd( LOG_DEBUG1, "Inactive fd closed for %s:%d", image->name, (int)image->rid );
fds[fdindex++] = image->readFd;