summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSimon Rettberg2013-12-06 18:54:47 +0100
committerSimon Rettberg2013-12-06 18:54:47 +0100
commit81a92184cf62673c3347715ca8ef9367af6587be (patch)
tree062662af99e9b5f71cbf63d228ff30408f18a9d8
parent[SERVER] Remove annoying message about cache maps being saved (diff)
downloaddnbd3-81a92184cf62673c3347715ca8ef9367af6587be.tar.gz
dnbd3-81a92184cf62673c3347715ca8ef9367af6587be.tar.xz
dnbd3-81a92184cf62673c3347715ca8ef9367af6587be.zip
[SERVER] Clean up properly when deleting an image
-rw-r--r--src/server/image.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/server/image.c b/src/server/image.c
index d31ab15..956d3fe 100644
--- a/src/server/image.c
+++ b/src/server/image.c
@@ -1206,11 +1206,19 @@ static int image_ensureDiskSpace(uint64_t size)
}
image_release( current );
}
- if ( oldest == NULL || mtime == 0 || time(NULL) - mtime < 86400 ) return FALSE;
+ if ( oldest == NULL || mtime == 0 || time( NULL ) - mtime < 86400 ) return FALSE;
oldest = image_lock( oldest );
if ( oldest == NULL ) return FALSE;
memlogf( "[INFO] '%s' has to go!", oldest->lower_name );
unlink( oldest->path );
+ size_t len = strlen( oldest->path ) + 5 + 1;
+ char buffer[len];
+ snprintf( buffer, len, "%s.map", oldest->path );
+ unlink( buffer );
+ snprintf( buffer, len, "%s.crc", oldest->path );
+ unlink( buffer );
+ snprintf( buffer, len, "%s.meta", oldest->path );
+ unlink( buffer );
image_remove( oldest );
image_release( oldest );
}