BSD 4_3_Tahoe release
[unix-history] / usr / src / etc / tunefs.c
index 051bb49..8459e51 100644 (file)
@@ -11,7 +11,7 @@ char copyright[] =
 #endif not lint
 
 #ifndef lint
 #endif not lint
 
 #ifndef lint
-static char sccsid[] = "@(#)tunefs.c   5.3 (Berkeley) 9/11/85";
+static char sccsid[] = "@(#)tunefs.c   5.6 (Berkeley) 1/3/88";
 #endif not lint
 
 /*
 #endif not lint
 
 /*
@@ -33,6 +33,7 @@ union {
 #define        sblock sbun.sb
 
 int fi;
 #define        sblock sbun.sb
 
 int fi;
+long dev_bsize = 1;
 
 main(argc, argv)
        int argc;
 
 main(argc, argv)
        int argc;
@@ -44,7 +45,6 @@ main(argc, argv)
        int Aflag = 0;
        struct fstab *fs;
        char *chg[2], device[MAXPATHLEN];
        int Aflag = 0;
        struct fstab *fs;
        char *chg[2], device[MAXPATHLEN];
-       extern char *sprintf();
 
        argc--, argv++; 
        if (argc < 2)
 
        argc--, argv++; 
        if (argc < 2)
@@ -58,7 +58,8 @@ again:
                if (*special != '/') {
                        if (*special == 'r')
                                special++;
                if (*special != '/') {
                        if (*special == 'r')
                                special++;
-                       special = sprintf(device, "/dev/%s", special);
+                       (void)sprintf(device, "/dev/%s", special);
+                       special = device;
                        goto again;
                }
                fprintf(stderr, "tunefs: "); perror(special);
                        goto again;
                }
                fprintf(stderr, "tunefs: "); perror(special);
@@ -97,8 +98,6 @@ again:
                                        fatal("-d: missing %s", name);
                                argc--, argv++;
                                i = atoi(*argv);
                                        fatal("-d: missing %s", name);
                                argc--, argv++;
                                i = atoi(*argv);
-                               if (i < 0)
-                                       fatal("%s: bad %s", *argv, name);
                                fprintf(stdout,
                                        "%s changes from %dms to %dms\n",
                                        name, sblock.fs_rotdelay, i);
                                fprintf(stdout,
                                        "%s changes from %dms to %dms\n",
                                        name, sblock.fs_rotdelay, i);
@@ -178,7 +177,7 @@ again:
        }
        if (argc != 1)
                goto usage;
        }
        if (argc != 1)
                goto usage;
-       bwrite(SBLOCK, (char *)&sblock, SBSIZE);
+       bwrite(SBOFF / dev_bsize, (char *)&sblock, SBSIZE);
        if (Aflag)
                for (i = 0; i < sblock.fs_ncg; i++)
                        bwrite(fsbtodb(&sblock, cgsblock(&sblock, i)),
        if (Aflag)
                for (i = 0; i < sblock.fs_ncg; i++)
                        bwrite(fsbtodb(&sblock, cgsblock(&sblock, i)),
@@ -207,7 +206,7 @@ getsb(fs, file)
                perror(file);
                exit(3);
        }
                perror(file);
                exit(3);
        }
-       if (bread(SBLOCK, (char *)fs, SBSIZE)) {
+       if (bread(SBOFF, (char *)fs, SBSIZE)) {
                fprintf(stderr, "bad super block");
                perror(file);
                exit(4);
                fprintf(stderr, "bad super block");
                perror(file);
                exit(4);
@@ -216,6 +215,7 @@ getsb(fs, file)
                fprintf(stderr, "%s: bad magic number\n", file);
                exit(5);
        }
                fprintf(stderr, "%s: bad magic number\n", file);
                exit(5);
        }
+       dev_bsize = fs->fs_fsize / fsbtodb(fs, 1);
 }
 
 bwrite(blk, buf, size)
 }
 
 bwrite(blk, buf, size)
@@ -223,7 +223,7 @@ bwrite(blk, buf, size)
        daddr_t blk;
        register size;
 {
        daddr_t blk;
        register size;
 {
-       if (lseek(fi, blk * DEV_BSIZE, 0) < 0) {
+       if (lseek(fi, blk * dev_bsize, 0) < 0) {
                perror("FS SEEK");
                exit(6);
        }
                perror("FS SEEK");
                exit(6);
        }
@@ -239,7 +239,7 @@ bread(bno, buf, cnt)
 {
        register i;
 
 {
        register i;
 
-       if (lseek(fi, bno * DEV_BSIZE, 0) < 0)
+       if (lseek(fi, bno * dev_bsize, 0) < 0)
                return(1);
        if ((i = read(fi, buf, cnt)) != cnt) {
                for(i=0; i<sblock.fs_bsize; i++)
                return(1);
        if ((i = read(fi, buf, cnt)) != cnt) {
                for(i=0; i<sblock.fs_bsize; i++)