diff options
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); |