summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--sys-utils/losetup.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/sys-utils/losetup.c b/sys-utils/losetup.c
index ba1363de3..606789c42 100644
--- a/sys-utils/losetup.c
+++ b/sys-utils/losetup.c
@@ -481,6 +481,12 @@ static int create_loop(struct loopdev_cxt *lc,
loopcxt_deinit(lc);
errx(EXIT_FAILURE, _("%s: overlapping encrypted loop device exists"), file);
}
+
+ lc->info.lo_flags &= !LO_FLAGS_AUTOCLEAR;
+ if (loopcxt_set_status(lc)) {
+ loopcxt_deinit(lc);
+ errx(EXIT_FAILURE, _("%s: failed to re-use loop device"), file);
+ }
return 0; /* success, re-use */
}
default: /* error */