X-Git-Url: https://git.whamcloud.com/?p=fs%2Flustre-release.git;a=blobdiff_plain;f=lustre%2Futils%2Fmount_utils.c;h=5c9a845a0b772f5ebaf9c74d7950642085b65443;hp=e0502feac25f64067ef33aefb85a2273cf56256e;hb=98ac0fe3a45dde62759ecaa4c84e6250ac2067f8;hpb=9761d5c52aeef31a8c3112c3fb3ec9e24b37c800 diff --git a/lustre/utils/mount_utils.c b/lustre/utils/mount_utils.c index e0502fe..5c9a845 100644 --- a/lustre/utils/mount_utils.c +++ b/lustre/utils/mount_utils.c @@ -368,11 +368,23 @@ int loop_setup(struct mkfs_opts *mop) int loop_cleanup(struct mkfs_opts *mop) { char cmd[150]; - int ret = 1; + int ret = 0; + if ((mop->mo_flags & MO_IS_LOOP) && *mop->mo_loopdev) { + int tries; + sprintf(cmd, "losetup -d %s", mop->mo_loopdev); - ret = run_command(cmd, sizeof(cmd)); + for (tries = 0; tries < 3; tries++) { + ret = run_command(cmd, sizeof(cmd)); + if (ret == 0) + break; + sleep(1); + } } + + if (ret != 0) + fprintf(stderr, "cannot cleanup %s: rc = %d\n", + mop->mo_loopdev, ret); return ret; }