From e43df657f125af42779af54dca6183f023725d2d Mon Sep 17 00:00:00 2001 From: Hannes Reinecke Date: Tue, 14 Oct 2008 08:38:29 +0200 Subject: kpartx -l does not remove it's loop device When doing a kpartx -l it does not remove it's loop device when done. The appended patch to multipath-tools could fix this. References: 417266 Signed-off-by: Philipp Zimmer Signed-off-by: Hannes Reinecke --- kpartx/kpartx.c | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'kpartx') diff --git a/kpartx/kpartx.c b/kpartx/kpartx.c index 237d958..d1c06d2 100644 --- a/kpartx/kpartx.c +++ b/kpartx/kpartx.c @@ -198,6 +198,7 @@ main(int argc, char **argv){ char *mapname = NULL; int loopro = 0; int hotplug = 0; + int loopcreated = 0; struct stat buf; initpts(); @@ -292,6 +293,7 @@ main(int argc, char **argv){ fprintf(stderr, "can't set up loop\n"); exit (1); } + loopcreated = 1; } device = loopdev; } @@ -389,6 +391,15 @@ main(int argc, char **argv){ break; } + if (loopcreated && S_ISREG (buf.st_mode)) { + if (del_loop(device)) { + if (verbose) + printf("can't del loop : %s\n", + device); + exit(1); + } + printf("loop deleted : %s\n", device); + } break; case DELETE: -- cgit v1.2.3