- if (sflg && highuid >= 0) {
- int sig;
- int ssig;
-
- sig = (int) signal(SIGINT, SIG_IGN);
- ssig = (int) signal(SIGTSTP, SIG_IGN);
- if ((qf = fopen(*argv, "a")) == NULL) {
- fprintf(stderr, "Can't create %s\n", *argv);
- exit(1);
+ for (uid = 0; uid <= highuid; uid++) {
+ fup = lookup(uid);
+ if (fup == 0)
+ continue;
+ fseek(qf, uid * sizeof(struct dqblk), 0);
+ i = fread(&dqbuf, sizeof(struct dqblk), 1, qf);
+ if (i == 0)
+ bzero(&dqbuf, sizeof(struct dqblk));
+ if (dqbuf.dqb_curinodes == fup->fu_usage.du_curinodes &&
+ dqbuf.dqb_curblocks == fup->fu_usage.du_curblocks)
+ continue;
+ if (vflag) {
+ fprintf(stdout, "uid %d fixed:", uid);
+ fprintf(stdout, " inodes (old %d, new %d)",
+ dqbuf.dqb_curinodes, fup->fu_usage.du_curinodes);
+ fprintf(stdout, " blocks (old %d, new %d)\n",
+ dqbuf.dqb_curblocks, fup->fu_usage.du_curblocks);