summaryrefslogtreecommitdiffstats
path: root/src/server/saveload.c
diff options
context:
space:
mode:
authorsr2012-09-09 23:01:00 +0200
committersr2012-09-09 23:01:00 +0200
commit3e8cd5b2284fd68206cd7ea9943e892fcce037f8 (patch)
tree3b4a67620bf6bedf678b8b70bf4cf3e7822edf89 /src/server/saveload.c
parent[SERVER] Automatically assign and connect a dnbd3 device to a relayed image (diff)
downloaddnbd3-3e8cd5b2284fd68206cd7ea9943e892fcce037f8.tar.gz
dnbd3-3e8cd5b2284fd68206cd7ea9943e892fcce037f8.tar.xz
dnbd3-3e8cd5b2284fd68206cd7ea9943e892fcce037f8.zip
[SERVER] Automatically connect a dnbd3 device for a relayed image
[SERVER] Automatically disconnect dnbd3 device if local cache copy is complete [SERVER] Pre-allocate disk space for cache file [KERNEL] Refuse connection if server reports disk size < 4096 bytes
Diffstat (limited to 'src/server/saveload.c')
-rw-r--r--src/server/saveload.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/server/saveload.c b/src/server/saveload.c
index b41bb56..5f67b28 100644
--- a/src/server/saveload.c
+++ b/src/server/saveload.c
@@ -161,7 +161,6 @@ int dnbd3_add_image(dnbd3_image_t *image)
image = NULL;
if (newimage)
{
- memlogf("[INFO] Added image '%s'", newimage->low_name);
_dnbd3_images = g_slist_prepend(_dnbd3_images, newimage);
}
else
@@ -375,6 +374,12 @@ static dnbd3_image_t *prepare_image(char *image_name, int rid, char *image_file,
image->rid = rid;
image->relayed = (image_file == NULL || image_file == '\0');
+ if (image_file && strncmp(image_file, "/dev/dnbd", 9) == 0)
+ {
+ printf("[BUG BUG BUG] Image file is %s\n", image_file);
+ image->relayed = TRUE;
+ }
+
if (image->relayed) // Image is relayed (this server acts as proxy)
{
if (strchr(image_name, '/') == NULL)
@@ -431,6 +436,7 @@ static dnbd3_image_t *prepare_image(char *image_name, int rid, char *image_file,
}
else if (image->filesize > 0)
{
+ printf("[DEBUG] Size known %llu for %s\n", (unsigned long long)image->filesize, image->cache_file);
const size_t map_len_bytes = IMGSIZE_TO_MAPBYTES(image->filesize);
image->cache_map = calloc(map_len_bytes, sizeof(uint8_t));
// read cache map from file