diff options
author | Simon Rettberg | 2017-09-08 16:22:45 +0200 |
---|---|---|
committer | Simon Rettberg | 2017-09-08 16:22:45 +0200 |
commit | 68ac73f3256c7a25e3f3e0eaaeb5fe29d1fa05ee (patch) | |
tree | 532213771c1ed9c9388896ae0b5f3435b496b59b /src/server/image.c | |
parent | [SERVER] Refactor: Move client list to net.* and isolate (diff) | |
download | dnbd3-68ac73f3256c7a25e3f3e0eaaeb5fe29d1fa05ee.tar.gz dnbd3-68ac73f3256c7a25e3f3e0eaaeb5fe29d1fa05ee.tar.xz dnbd3-68ac73f3256c7a25e3f3e0eaaeb5fe29d1fa05ee.zip |
[SERVER] Fix closing timeout reset, fix log messages
Diffstat (limited to 'src/server/image.c')
-rw-r--r-- | src/server/image.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/server/image.c b/src/server/image.c index 4061e1a..1504dae 100644 --- a/src/server/image.c +++ b/src/server/image.c @@ -370,7 +370,7 @@ dnbd3_image_t* image_get(char *name, uint16_t revision, bool checkIfWorking) logadd( LOG_DEBUG2, "Reading first %d bytes from %s failed (errno=%d)%s.", (int)sizeof(buffer), candidate->path, errno, removingText ); reload = true; - } else { + } else if ( !candidate->working ) { // Seems everything is fine again \o/ candidate->working = true; logadd( LOG_INFO, "Changed state of %s:%d to 'working'", candidate->name, candidate->rid ); @@ -1667,6 +1667,7 @@ void image_closeUnusedFd() { int fd, i; time_t deadline = time( NULL ) - UNUSED_FD_TIMEOUT; + char imgstr[300]; spin_lock( &imageListLock ); for (i = 0; i < _num_images; ++i) { dnbd3_image_t * const image = _images[i]; @@ -1675,6 +1676,7 @@ void image_closeUnusedFd() spin_lock( &image->lock ); spin_unlock( &imageListLock ); if ( image->users == 0 && image->atime < deadline ) { + snprintf( imgstr, sizeof(imgstr), "%s:%d", image->name, (int)image->rid ); fd = image->readFd; image->readFd = -1; } else { @@ -1683,6 +1685,7 @@ void image_closeUnusedFd() spin_unlock( &image->lock ); if ( fd != -1 ) { close( fd ); + logadd( LOG_DEBUG1, "Inactive fd closed for %s", imgstr ); } spin_lock( &imageListLock ); } |