X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=src%2Fcore%2Fumount.c;h=95e47e3c5ac4a9a084dbb7621f7e2b84c7ce1f7d;hp=3fcb90eca4d9219e128cca90c957b668ffd15b04;hb=e62d8c3944745ed276e6d4f33153009860e5cfc5;hpb=3c8bed4ee061f96acb4d70a591a9849bddd2a659 diff --git a/src/core/umount.c b/src/core/umount.c index 3fcb90eca..95e47e3c5 100644 --- a/src/core/umount.c +++ b/src/core/umount.c @@ -379,12 +379,14 @@ static int delete_loopback(const char *device) { } static int delete_dm(dev_t devnum) { - int fd, r; + int _cleanup_close_ fd = -1; + int r; struct dm_ioctl dm; assert(major(devnum) != 0); - if ((fd = open("/dev/mapper/control", O_RDWR|O_CLOEXEC)) < 0) + fd = open("/dev/mapper/control", O_RDWR|O_CLOEXEC); + if (fd < 0) return -errno; zero(dm); @@ -396,8 +398,6 @@ static int delete_dm(dev_t devnum) { dm.dev = devnum; r = ioctl(fd, DM_DEV_REMOVE, &dm); - close_nointr_nofail(fd); - return r >= 0 ? 0 : -errno; }