Stop trying to zero UFS1 superblocks if we fall off the end of the disk.
This avoids a potentially many-hours-long loop of failed writes if newfs finds a partially-overwritten superblock (or, for that matter, random garbage which happens to have superblock magic bytes); on one occasion I found newfs trying to zero 800 million superblocks on a 50 MB disk. Reviewed by: mckusick MFC after: 1 week
This commit is contained in:
parent
6bb544780b
commit
c2805605f7
@ -516,9 +516,12 @@ mkfs(struct partition *pp, char *fsys)
|
||||
fsdummy.fs_magic = 0;
|
||||
bwrite(&disk, part_ofs + SBLOCK_UFS1 / disk.d_bsize,
|
||||
chdummy, SBLOCKSIZE);
|
||||
for (cg = 0; cg < fsdummy.fs_ncg; cg++)
|
||||
for (cg = 0; cg < fsdummy.fs_ncg; cg++) {
|
||||
if (fsbtodb(&fsdummy, cgsblock(&fsdummy, cg)) > fssize)
|
||||
break;
|
||||
bwrite(&disk, part_ofs + fsbtodb(&fsdummy,
|
||||
cgsblock(&fsdummy, cg)), chdummy, SBLOCKSIZE);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!Nflag)
|
||||
|
Loading…
Reference in New Issue
Block a user