diff options
author | Hannes Reinecke <hare@suse.de> | 2008-10-14 08:38:29 +0200 |
---|---|---|
committer | Christophe Varoqui <christophe.varoqui@free.fr> | 2009-04-21 23:32:21 +0200 |
commit | e43df657f125af42779af54dca6183f023725d2d (patch) | |
tree | 7ebb6bd705a5231861817cdbdc775f2c95836fcc /kpartx | |
parent | 8e191fd33fd131061dc762cd45bf54088713a6ff (diff) | |
download | multipath-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.c | 11 |
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: |