summaryrefslogtreecommitdiff
path: root/sbin/fsck_ffs
AgeCommit message (Collapse)Author
2001-07-07major -Wall cleanup, almost completeTheo de Raadt
2001-05-28Fix directory state tracking.Grigoriy Orlov
- If the lost+found directory is created by fsck, it will do a cacheino() which sets the inoinfo's i_parent and i_dotdot to 0, but they never get set to ROOTINO. This means that propagate will never find lost+found and its descendents, subdirectories will remain DSTATE (instead of DFOUND) even though they are correctly linked in, and pass4.c will try to clear them unsuccessfully, thinking that there is no link count from the DSTATE directory's parent. The result is that you need to run fsck twice and get "EXTRANEOUS HARD LINK TO DIRECTORY" error (which are unexpected and fatal when running in preen mode). The fix is to set i_parent and i_dotdot to "parent" after the second cacheino() call in dir.c:allocdir(). From NetBSD via FreeBSD. - modify propagate() so it be able to start from any point in the tree. - minor tweaks to get more generality in state propagation. In other words fsck doesn't leave unremovable directories anymore. costa@ ok.
2001-05-15error out if failed to malloc memory for inode cache entry; deraadt@ okMichael Shalayeff
2001-05-15report on another calloc() failureTheo de Raadt
2001-04-23Various man page fixes and improvements from gluk@Aaron Campbell
2001-04-19Cleanup dirpref and synhronize superblock with freebsd.Grigoriy Orlov
From FreeBSD with little changes. art@ ok.
2001-04-13Fix overflow in superblock. From FreeBSD.Grigoriy Orlov
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.
2001-04-06Replace FFS directory preference algorithm(dirpref) by new one.Grigoriy Orlov
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@
2001-03-09missing \n for MARKED FREE messages, some spacesMichael Shalayeff
2001-03-02Simpler algorithm or calculating inomapsizeConstantine Sapuntzakis
2001-03-02When doing last second fixes before a commit, it's a good ideaArtur Grabowski
to check if it builds.
2001-03-02Make fsck aware of soft updates.Artur Grabowski
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)
2001-01-19mark signal races i cannot fix at the momentTheo de Raadt
2001-01-15save_errno in signal handlerTheo de Raadt
2000-12-29Don't mark filesystem clean if fsck needs to be rerun (PR 1572)Angelos D. Keromytis
2000-09-30Some format string problems that were missed during initial audit; deraadt@ andAaron Campbell
millert@ ok
2000-03-28mkfs(8) died a long time agoTheo de Raadt
2000-03-18Remove hard sentence breaks, and some other cleanup along the way.Aaron Campbell
2000-01-22remove extra externs not needed because of unistd.h (rest of tree will be ↵Theo de Raadt
done later.. contact me if you want to help)
1999-08-17More <sys/file.h> vs. <fcntl.h> and open() flags fixes.Todd C. Miller
1999-08-06uid_t and gid_t, and use %uTheo de Raadt
1999-07-21use .Ar on later .It Fl linesTheo de Raadt
1999-06-04start to remove non-escaped trailing whitespace, it can confuse troff; pjanzen@Aaron Campbell
1999-05-23remove argument from .Os macros so value in /usr/share/tmac/mdoc/doc-commonAaron Campbell
is used instead; kwesterback@home.com
1999-03-01SIGINFO supportDavid Leonard
1998-12-15always give .Nm macros an argument in SYNOPSIS sections; krw@tcn.netAaron Campbell
1998-11-28kill redundant .Nm macro arguments; other misc fixesAaron Campbell
1998-11-11more `` '' -> .Dq sillyness; remove redundant .Pp macros; other misc fixesAaron Campbell
1998-09-23alphabetize SEE ALSO entries and order them numerically according to sectionAaron Campbell
1998-09-17sbin/ man page fixesAaron Campbell
1998-02-05Ha! Caught Todd making a mistake!Theo de Raadt
1998-02-05Add usage lineTodd C. Miller
1997-11-09Don't include <ufs/ffs/ffs_extern.h>. fsck_ffs now compiles.Todd C. Miller
1997-10-11Never involve negative numbers in unsigned expressions. Fixes a segfault someNiklas Hallqvist
bad fs images triggers.
1997-10-06back out vfs lite2 till after 2.2Theo de Raadt
1997-10-06VFS Lite2 ChangesConstantine Sapuntzakis
1997-09-21$OpenBSD$Theo de Raadt
1997-07-14that was not a nice changeTheo de Raadt
1997-07-14change the output so that it fits into 80 columnsThomas Graichen
1997-06-25(foo *)0 -> NULLkstailey
1997-06-22Avoid an overflow when checking inode numbers; from FreeBSD PR #3528 byThorsten Lockert
Ian Dowse <iedowse@maths.tcd.ie>
1997-03-27use 700 not 777 for new lost+found dirskstailey
1997-02-20CFLAGS+=, from m4@umn.eduTheo de Raadt
1997-02-20From FreeBSD [Terry Lambert]:Thorsten Lockert
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.
1997-01-15getopt(3) returns -1 when out of args, not EOF, whee!Todd C. Miller
1996-10-20Sync with NetBSD 961019Thorsten Lockert
1996-10-12From Kirk McKusick:Thorsten Lockert
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.
1996-06-23update rcsidTheo de Raadt
1996-06-10add usage printoutTheo de Raadt
1996-05-28be more carefulTheo de Raadt