diff options
author | Simon Rettberg | 2013-12-06 18:54:47 +0100 |
---|---|---|
committer | Simon Rettberg | 2013-12-06 18:54:47 +0100 |
commit | 81a92184cf62673c3347715ca8ef9367af6587be (patch) | |
tree | 062662af99e9b5f71cbf63d228ff30408f18a9d8 | |
parent | [SERVER] Remove annoying message about cache maps being saved (diff) | |
download | dnbd3-81a92184cf62673c3347715ca8ef9367af6587be.tar.gz dnbd3-81a92184cf62673c3347715ca8ef9367af6587be.tar.xz dnbd3-81a92184cf62673c3347715ca8ef9367af6587be.zip |
[SERVER] Clean up properly when deleting an image
-rw-r--r-- | src/server/image.c | 10 |
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 ); } |