diff -u db.orig/check.c db/check.c --- db.orig/check.c Tue Oct 15 18:18:30 2002 +++ db/check.c Wed Dec 4 07:05:42 2002 @@ -803,8 +803,13 @@ dbprintf("already have block usage information\n"); return 0; } - if (!init(argc, argv)) + if (!init(argc, argv)) { + if (serious_error) + exitcode = 3; + else + exitcode = 1; return 0; + } oldprefix = dbprefix; dbprefix |= pflag; for (agno = 0, sbyell = 0; agno < mp->m_sb.sb_agcount; agno++) { @@ -1719,9 +1724,11 @@ xfs_ino_t ino; int rt; + serious_error = 0; if (mp->m_sb.sb_magicnum != XFS_SB_MAGIC) { dbprintf("bad superblock magic number %x, giving up\n", mp->m_sb.sb_magicnum); + serious_error = 1; return 0; } rt = mp->m_sb.sb_rextents != 0;