Age | Commit message (Collapse) | Author |
|
|
|
|
|
|
|
|
|
Ian Dowse <iedowse@maths.tcd.ie>
|
|
|
|
|
|
The following small diff fixes the annoying fsck bug that causes it to
need to be run twice to end up with correct reference counts for inodes
for directories that had subdirectories relocated into the lost+found
directory.
I found the need to rerun *extremely* annoying. This fix causes the
count to be correctly adjusted later in pass 4 by correctly stating
the parent reference count.
Note that the parent reference count is incremented when the directory
entry is made (for ".."), but is not really there in the case of a
directory that does not make an entry in its parent dir.
This can be tested by waiting for the inode sync after cd'ing from a
shell into a test fs. Then you "mkdir xxx yyy zzz", wait a second,
and hit the machine reset button.
|
|
|
|
|
|
If a directory somehow develops a hole (that is a block pointer
that has a value of zero), fsck would give the filesystem a clean
bill of health, but the kernel would panic when accessing the
directory with the hole. Fsck now checks for holes in directories.
If found in preen mode, fsck fails. In manual mode, it can be
directed to shorten the directory to the beginning of the hole. A
more complete solution would be to allocate a block to fill the
hole. However, this is a lot more work for a `cannot happen' error,
so the extra effort seems unwarranted.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
mouse@collatz.mccrim.mcgill.edu; netbsd pr#1366
|
|
|
|
|
|
|
|
|
|
|