X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Fcore%2Fumount.c;h=d1258f0f08b299244f3635e38fa536c4598fbebd;hb=1b8689f94983b47bf190e77ddb03a8fc6af15fb3;hp=2d166c1c92c967a69f6d060b3b8c5c8bc15faf67;hpb=a87f0f726ca6dc9fde11eea6591a244e77d2d182;p=elogind.git diff --git a/src/core/umount.c b/src/core/umount.c index 2d166c1c9..d1258f0f0 100644 --- a/src/core/umount.c +++ b/src/core/umount.c @@ -329,14 +329,14 @@ static int dm_list_get(MountPoint **head) { } static int delete_loopback(const char *device) { - int fd, r; + _cleanup_close_ int fd = -1; + int r; - if ((fd = open(device, O_RDONLY|O_CLOEXEC)) < 0) + fd = open(device, O_RDONLY|O_CLOEXEC); + if (fd < 0) return errno == ENOENT ? 0 : -errno; r = ioctl(fd, LOOP_CLR_FD, 0); - close_nointr_nofail(fd); - if (r >= 0) return 1;