From ec507460768fb9ebe0bf037855864e9a94f3b36a Mon Sep 17 00:00:00 2001 From: Simon Rettberg Date: Tue, 12 Nov 2013 18:37:30 +0100 Subject: [SERVER] Save cache maps every 30 mins --- src/server/image.c | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) (limited to 'src/server/image.c') diff --git a/src/server/image.c b/src/server/image.c index 53b8aea..40de3fd 100644 --- a/src/server/image.c +++ b/src/server/image.c @@ -155,6 +155,18 @@ void image_markComplete(dnbd3_image_t *image) remove( mapfile ); } +/** + * Save cache map of every image + */ +void image_saveAllCacheMaps() +{ + spin_lock( &_images_lock ); + for (int i = 0; i < _num_images; ++i) { + image_saveCacheMap( _images[i] ); + } + spin_unlock( &_images_lock ); +} + /** * Saves the cache map of the given image. * Return TRUE on success. @@ -1173,7 +1185,7 @@ static int image_ensureDiskSpace(uint64_t size) if ( oldest->atime == 0 ) mtime = file_lastModification( oldest->path ); } else if ( oldest->atime == 0 && current->atime == 0 ) { // Oldest access time is 0 (=never used since server startup), so take file modification time into account - const time_t m = file_lastModification(current->path ); + const time_t m = file_lastModification( current->path ); if ( m < mtime ) { mtime = m; oldest = current; -- cgit v1.2.3-55-g7522