From 62bdcaf77ab024e50d65d1e23b734553306f8033 Mon Sep 17 00:00:00 2001 From: nathan Date: Wed, 28 Jun 2006 00:37:38 +0000 Subject: [PATCH] Branch b1_5 b=9858 clean up loop dev if mount fails --- lustre/tests/conf-sanity.sh | 8 ++++---- lustre/utils/mount_lustre.c | 15 +++++++++++++-- 2 files changed, 17 insertions(+), 6 deletions(-) diff --git a/lustre/tests/conf-sanity.sh b/lustre/tests/conf-sanity.sh index cbb1441..55de474 100644 --- a/lustre/tests/conf-sanity.sh +++ b/lustre/tests/conf-sanity.sh @@ -181,7 +181,7 @@ test_2() { check_mount || return 43 cleanup || return $? } -run_test 2 "start up mds twice" +run_test 2 "start up mds twice (should return err)" test_3() { setup @@ -190,7 +190,7 @@ test_3() { check_mount || return 44 cleanup || return $? } -run_test 3 "mount client twice" +run_test 3 "mount client twice (should return err)" test_4() { setup @@ -255,7 +255,7 @@ test_5b() { cleanup_nocli || return $? return 0 } -run_test 5b "mds down, cleanup after failed mount (bug 2712)" +run_test 5b "mds down, cleanup after failed mount (bug 2712) (should return errs)" test_5c() { start_ost @@ -267,7 +267,7 @@ test_5c() { umount_client $MOUNT cleanup_nocli || return $? } -run_test 5c "cleanup after failed mount (bug 2712)" +run_test 5c "cleanup after failed mount (bug 2712) (should return errs)" test_5d() { start_ost diff --git a/lustre/utils/mount_lustre.c b/lustre/utils/mount_lustre.c index 96fb597..17c5471 100644 --- a/lustre/utils/mount_lustre.c +++ b/lustre/utils/mount_lustre.c @@ -376,7 +376,11 @@ int main(int argc, char *const argv[]) rc = mount(source, target, "lustre", flags, (void *)optcopy); if (rc) { - char *cli = strrchr(source, ':'); + char *cli; + + rc = errno; + + cli = strrchr(source, ':'); if (cli && (strlen(cli) > 2)) cli += 2; else @@ -420,7 +424,14 @@ int main(int argc, char *const argv[]) fprintf(stderr, "Are the mount options correct?\n"); fprintf(stderr, "Check the syslog for more info.\n"); } - rc = errno; + + /* May as well try to clean up loop devs */ + if (strncmp(source, "/dev/loop", 9) == 0) { + char cmd[256]; + sprintf(cmd, "/sbin/losetup -d %s", source); + system(cmd); + } + } else if (!nomtab) { rc = update_mtab_entry(source, target, "lustre", orig_options, 0,0,0); -- 1.8.3.1