+ dirty(&asblk);
+ }
+ }
+ if (cvtflag) {
+ if (sblock.fs_postblformat == FS_42POSTBLFMT) {
+ /*
+ * Requested to convert from old format to new format
+ */
+ if (preen)
+ pwarn("CONVERTING TO NEW FILE SYSTEM FORMAT\n");
+ else if (!reply("CONVERT TO NEW FILE SYSTEM FORMAT"))
+ return(0);
+ sblock.fs_postblformat = FS_DYNAMICPOSTBLFMT;
+ sblock.fs_nrpos = 8;
+ sblock.fs_postbloff =
+ (char *)(&sblock.fs_opostbl[0][0]) -
+ (char *)(&sblock.fs_link);
+ sblock.fs_rotbloff = &sblock.fs_space[0] -
+ (u_char *)(&sblock.fs_link);
+ sblock.fs_cgsize =
+ fragroundup(&sblock, CGSIZE(&sblock));
+ /*
+ * Planning now for future expansion.
+ */
+# if (BYTE_ORDER == BIG_ENDIAN)
+ sblock.fs_qbmask.val[0] = 0;
+ sblock.fs_qbmask.val[1] = ~sblock.fs_bmask;
+ sblock.fs_qfmask.val[0] = 0;
+ sblock.fs_qfmask.val[1] = ~sblock.fs_fmask;
+# endif /* BIG_ENDIAN */
+# if (BYTE_ORDER == LITTLE_ENDIAN)
+ sblock.fs_qbmask.val[0] = ~sblock.fs_bmask;
+ sblock.fs_qbmask.val[1] = 0;
+ sblock.fs_qfmask.val[0] = ~sblock.fs_fmask;
+ sblock.fs_qfmask.val[1] = 0;
+# endif /* LITTLE_ENDIAN */
+ sbdirty();
+ dirty(&asblk);
+ } else if (sblock.fs_postblformat == FS_DYNAMICPOSTBLFMT) {
+ /*
+ * Requested to convert from new format to old format
+ */
+ if (sblock.fs_nrpos != 8 || sblock.fs_ipg > 2048 ||
+ sblock.fs_cpg > 32 || sblock.fs_cpc > 16) {
+ printf(
+ "PARAMETERS OF CURRENT FILE SYSTEM DO NOT\n\t");
+ errexit(
+ "ALLOW CONVERSION TO OLD FILE SYSTEM FORMAT\n");
+ }
+ if (preen)
+ pwarn("CONVERTING TO OLD FILE SYSTEM FORMAT\n");
+ else if (!reply("CONVERT TO OLD FILE SYSTEM FORMAT"))
+ return(0);
+ sblock.fs_postblformat = FS_42POSTBLFMT;
+ sblock.fs_cgsize = fragroundup(&sblock,
+ sizeof(struct ocg) + howmany(sblock.fs_fpg, NBBY));
+ sbdirty();
+ dirty(&asblk);
+ } else {
+ errexit("UNKNOWN FILE SYSTEM FORMAT\n");
+ }
+ }
+ if (asblk.b_dirty) {
+ bcopy((char *)&sblock, (char *)&altsblock,
+ (int)sblock.fs_sbsize);
+ flush(fswritefd, &asblk);