Age | Commit message (Collapse) | Author |
|
|
|
free room in struct partition by packing fragment size and
fragments/block more tighlty and use the resulting space to make
offset and size 48 bits. For the disk part we use spare fields in
struct disklabel. Kernel converts in-mem copy of the on-disk
label if needed, disklabel(8) writes new version.
We are careful to only change fields not used by bootloaders.
Conception of basic scheme by deraadt.
ok deraadt@ krw@
|
|
a ffs1 alternate sb at the primary ffs2 sb location. Use the same test
as the kernel does. ok millert@ pedro@
|
|
the ufs2 changes in FreeBSD by Kirk Mckusick.
|
|
sizes; requested by mickey@
|
|
accessing FFS1 fields, okay art@, quite some testing by ckuethe@, simon@
and thib@, thanks.
|
|
fragment sizes, so just make those conditions fatal errors and tell
the calling code to go look for alternate superblocks. ok millert@
|
|
locations based on the disklabel.
- unit bug: disklabel size is in sectors, but superblock
fs size is in fragments.
- The disklabel contains the maximum superblock size, not the actual
as used by newfs.
- problem is that mkfs reduces track/sector and secors/track to
make the cylindergroup fit in a fs block. In this case the values
in the disklabel do not predict what's in the superblock.
This fixes all these problems. It correctly predicts the location
of all superblocks on all my filesystems I have online (sized between
100MB and 1000GB). Also tested with filesystems with different
block and fragment sizes.
Written this with a goto to make the diff easier to read.
ok krw@ deraadt@
|
|
superblock might lead to crashes or other mishap. Now my fuzzed fs
images no longer crash fsck_ffs. ok mickey@ pedro@ millert@
|
|
help) miod@
|
|
of them are clean. ok pedro@ millert@
|
|
row. ok beck@ pedro@ millert@
|
|
|
|
Various testing for a while, okay krw@
|
|
No functional change
|
|
|
|
|
|
rescinded 22 July 1999. Proofed by myself and Theo.
|
|
ignore the noninteresting ones. will allow future changes to work
with an older fsck. similar to changes in NetBSD and FreeBSD.
ok krw@
|
|
- eliminate trailing whitespace
- remove casts that aren't needed.
- make rcsid strings const, for -Wall compilation.
from tedu <grendel@zeitbombe.org>
|
|
|
|
hand editing to make comments line up correctly. Another pass is forthcoming that handles the cases that could not be done automatically.
|
|
millert@ ok
|
|
|
|
|
|
From FreeBSD with little changes.
art@ ok.
|
|
FreeBSD's log:
> The ffs superblock includes a 128-byte region for use by temporary
> in-core pointers to summary information. An array in this region
> (fs_csp) could overflow on filesystems with a very large number of
> cylinder groups (~16000 on i386 with 8k blocks). When this happens,
> other fields in the superblock get corrupted, and fsck refuses to
> check the filesystem.
>
> Solve this problem by replacing the fs_csp array in 'struct fs'
> with a single pointer, and add padding to keep the length of the
> 128-byte region fixed. Update the kernel and userland utilities
> to use just this single pointer.
>
> With this change, the kernel no longer makes use of the superblock
> fields 'fs_csshift' and 'fs_csmask'. Add a comment to newfs/mkfs.c
> to indicate that these fields must be calculated for compatibility
> with older kernels.
art@ ok.
|
|
It allocates directory inode in the same cylinder group as a parent
directory in. This speedup file/directory intensive operations on
a big file systems in times.
Don't forget to recompile fsck_ffs with updated fs.h or you will get
"VALUES IN SUPER BLOCK DISAGREE WITH THOSE IN FIRST ALTERNATE" at
the next boot. In any case you can ignore this error safely.
Requested by deraadt@
|
|
We had this in the tree 1997, but it went away because it was too close to
release.
Ok: csapuntz@
(as a size note: It's really good to test fsck when you are torture testing
the filesystems)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|