diff options
author | sr | 2012-09-19 18:05:08 +0200 |
---|---|---|
committer | sr | 2012-09-19 18:05:08 +0200 |
commit | 85cb9c3e7c53ca97907d097d33ce7077cf81be64 (patch) | |
tree | 1292b3a1cd419ce092f5131579c9f7211b6996bb /src/server/server.c | |
parent | [SERVER] Async prealloc of cache file (diff) | |
download | dnbd3-85cb9c3e7c53ca97907d097d33ce7077cf81be64.tar.gz dnbd3-85cb9c3e7c53ca97907d097d33ce7077cf81be64.tar.xz dnbd3-85cb9c3e7c53ca97907d097d33ce7077cf81be64.zip |
[SERVER] Check trust settings before replicating image or adding alt server
[SERVER] Close dnbd3 block deviced of proxy images when shutting down
Diffstat (limited to 'src/server/server.c')
-rw-r--r-- | src/server/server.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/src/server/server.c b/src/server/server.c index b0068ce..126ac5e 100644 --- a/src/server/server.c +++ b/src/server/server.c @@ -26,6 +26,7 @@ #include <pthread.h> #include <string.h> #include <fcntl.h> +#include <sys/ioctl.h> #include "../types.h" #include "../version.h" @@ -113,6 +114,16 @@ void dnbd3_cleanup() close(fd); } + // Close bock devices of proxied images + if (image->file && strncmp(image->file, "/dev/dnbd", 9) == 0) + { + int fd = open(image->file, O_RDONLY); + dnbd3_ioctl_t msg; + memset(&msg, 0, sizeof(msg)); + msg.len = sizeof(msg); + ioctl(fd, IOCTL_CLOSE, &msg); + close(fd); + } free(image->cache_map); free(image->config_group); |