summaryrefslogtreecommitdiffstats
path: root/src/server/image.c
diff options
context:
space:
mode:
authorSimon Rettberg2013-11-12 18:37:30 +0100
committerSimon Rettberg2013-11-12 18:37:30 +0100
commitec507460768fb9ebe0bf037855864e9a94f3b36a (patch)
treed724ad0e6f70365d73539362aba6ffa5b7444d40 /src/server/image.c
parentMerge branch 'simon' of dnbd3:dnbd3 into simon (diff)
downloaddnbd3-ec507460768fb9ebe0bf037855864e9a94f3b36a.tar.gz
dnbd3-ec507460768fb9ebe0bf037855864e9a94f3b36a.tar.xz
dnbd3-ec507460768fb9ebe0bf037855864e9a94f3b36a.zip
[SERVER] Save cache maps every 30 mins
Diffstat (limited to 'src/server/image.c')
-rw-r--r--src/server/image.c14
1 files changed, 13 insertions, 1 deletions
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
@@ -156,6 +156,18 @@ void image_markComplete(dnbd3_image_t *image)
}
/**
+ * 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.
* Locks on: image.lock
@@ -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;