Commit Graph

23 Commits

Author SHA1 Message Date
thorpej 9c45d4b02d In pass 5, check alternate superblocks for consistency with
the current in-core master superblock, and fix them up if
they're incorrect.  Move the code that writes the alternate
superblocks if (cvtlevel || doswap) into pass 5 for efficiency.

Reviewd by Charles Hannum, and used by me to fix up a curdled
file system.
2001-01-26 17:37:16 +00:00
mycroft 66418680d4 The reconnect algorithm was historically O(n^4).
Some years ago I made it O(n^2).
Someone helpfully made it O(n^4) again.
Today I'm making it O(n).
If that's not good enough, I don't know what else to do.  B-)

Technical details:
* The graph traversal in propagate() is modified to be able to start from any
  point in the tree.  To handle certain exceptional cases, it is also modified
  to work in two passes, marking the tree with a special tag and then changing
  it to DFOUND.
* The reconnect case now modifies the child/sibling pointers and calls
  propagate() to propagate the connection state starting with the reconnected
  directory.

Pray that you never encounter a file system trashed enough for this to matter.
2001-01-09 05:51:14 +00:00
scw 9482a2a194 Some more `extern's for initialised globals. 2000-12-13 22:38:15 +00:00
fvdl 5a92829791 Update for softdep code. 1999-11-15 19:19:41 +00:00
bouyer 3e3f9c7795 #include machine/bswap.h and remove -lutil. 1999-01-15 13:32:05 +00:00
thorpej df7e58ed2e Use DINODE_SIZE rather than sizeof(struct dinode) and/or pointer arithmetic. 1998-10-23 01:13:33 +00:00
bouyer 9aaa32d9a7 Add support for non-native byteorder FFS, and converting byteorder.
Also, be a bit more conservative with the clean flag: don't mark the FS
clean when we know there may still be errors (user anserwed 'n' to
a question, or fsck says "you must rerun fsck").
1998-03-18 17:01:23 +00:00
lukem d2f145c7a6 a quad_t is an int64_t, not a u_int64_t... 1997-09-21 00:24:55 +00:00
lukem af479c48b8 - don't indiscriminately include <stdlib.h> and <unistd.h> in "fsck.h"
- explicitly pull in <stdio.h>, <stdlib.h> and <unistd.h> in *.c as necessary
1997-09-20 06:16:23 +00:00
lukem e111111128 resolve conflicts from lite-2 merge. 1997-09-16 16:44:43 +00:00
thorpej 2402aaa614 Bug fix from Kirk McKusick <mckusick@McKusick.COM>:
Fix a bug in fsck_ffs where 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-10-11 20:15:46 +00:00
christos 5528d37484 - fixed all printf formats [there were a lot of %l? <-> %? mistakes]
- added missing prototypes, and made local functions static
- removed parallel preening code; this is part of fsck(8)
- use printing utilities from fsck(8)
- Makefile does not make links to fsck and fsck.8
- removed -l maxparallel option. It has no meaning anymore.
1996-09-23 16:18:31 +00:00
mycroft 96dea9e6ca Use a different tree-walking algorithm in propagate(). 1996-06-11 07:07:52 +00:00
mycroft 7cb70c9889 Set the clean flag if necessary. If preening, don't check `clean' file
systems.
1995-04-12 21:24:07 +00:00
cgd 38bab6b6da type sizes 1995-03-21 01:30:09 +00:00
cgd 0114e805ce convert to new RCS Id conventions; reduce my headache 1995-03-18 14:54:19 +00:00
cgd 5eeab43e28 more cleanups from Jim Jegers, passed over by me. 1994-12-05 20:15:31 +00:00
mycroft ccfa3742b5 Update from 4.4-Lite, with local changes. 1994-06-08 18:57:30 +00:00
pk 77c9a3fa5b Prototype some things. 1994-05-02 10:18:21 +00:00
mycroft e9d867ef50 Add RCS identifiers. 1993-08-01 17:54:45 +00:00
cgd 06be60083d changed "Id" to "Header" for rcsids 1993-03-23 00:22:59 +00:00
cgd 346aa5dd48 added rcs ids to all files 1993-03-22 08:04:00 +00:00
cgd 61f282557f initial import of 386bsd-0.1 sources 1993-03-21 09:45:37 +00:00