summaryrefslogtreecommitdiff
path: root/kpartx
diff options
context:
space:
mode:
authorHannes Reinecke <hare@suse.de>2008-10-14 08:38:29 +0200
committerChristophe Varoqui <christophe.varoqui@free.fr>2009-04-21 23:32:21 +0200
commite43df657f125af42779af54dca6183f023725d2d (patch)
tree7ebb6bd705a5231861817cdbdc775f2c95836fcc /kpartx
parent8e191fd33fd131061dc762cd45bf54088713a6ff (diff)
downloadmultipath-tools-e43df657f125af42779af54dca6183f023725d2d.tar.gz
multipath-tools-e43df657f125af42779af54dca6183f023725d2d.tar.bz2
multipath-tools-e43df657f125af42779af54dca6183f023725d2d.zip
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 <pzimmer@novell.com> Signed-off-by: Hannes Reinecke <hare@suse.de>
Diffstat (limited to 'kpartx')
-rw-r--r--kpartx/kpartx.c11
1 files changed, 11 insertions, 0 deletions
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: