diff options
Diffstat (limited to 'src/core/umount.c')
-rw-r--r-- | src/core/umount.c | 16 |
1 files changed, 7 insertions, 9 deletions
diff --git a/src/core/umount.c b/src/core/umount.c index 95e47e3c5a..8c69e74caf 100644 --- a/src/core/umount.c +++ b/src/core/umount.c @@ -381,7 +381,13 @@ static int delete_loopback(const char *device) { static int delete_dm(dev_t devnum) { int _cleanup_close_ fd = -1; int r; - struct dm_ioctl dm; + struct dm_ioctl dm = { + .version = {DM_VERSION_MAJOR, + DM_VERSION_MINOR, + DM_VERSION_PATCHLEVEL}, + .data_size = sizeof(dm), + .dev = devnum, + }; assert(major(devnum) != 0); @@ -389,14 +395,6 @@ static int delete_dm(dev_t devnum) { if (fd < 0) return -errno; - zero(dm); - dm.version[0] = DM_VERSION_MAJOR; - dm.version[1] = DM_VERSION_MINOR; - dm.version[2] = DM_VERSION_PATCHLEVEL; - - dm.data_size = sizeof(dm); - dm.dev = devnum; - r = ioctl(fd, DM_DEV_REMOVE, &dm); return r >= 0 ? 0 : -errno; } |