Commit Graph

235 Commits

Author SHA1 Message Date
mycroft a48409305d A minor tweak. 2001-01-09 09:25:32 +00:00
enami 6c06fd4f9f Don't swap cg_clustersum(cg)[0]. It doesn't actually exists and it's
actually tail of free block bitmap.

XXX swap_cg() should be shared with newfs.
2001-01-09 09:08:35 +00:00
mycroft c4c9a7ecc0 Remove a bogus piece of code that was never used. 2001-01-09 06:05:10 +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
mycroft 3f2ff10f4c Try to cope with cs_ndir being wacky (too large or, particularly when using -b,
too damn small) by setting a minimum (1024) and maximum (maxino + 1).  This
prevents certain operations getting REALLY slow when -b is used, and also
avoids overallocating memory if the superblock is hosed.
2001-01-09 05:39:27 +00:00
lukem f7650338ca use %ll_ instead of the less standard %q_ 2001-01-05 02:02:57 +00:00
simonb 6714e09fe2 Need an lfdir global variable now. 2000-12-14 00:32:22 +00:00
scw 9482a2a194 Some more `extern's for initialised globals. 2000-12-13 22:38:15 +00:00
mycroft 078acb237c Fix an annoyingly incorrect message. 2000-12-13 03:04:51 +00:00
is 9979da6cbb Format string cleanups by Bill Sommerfeld. 2000-10-10 20:24:49 +00:00
castor d02d10e226 Fix an evil ugly bug which causes files placed into lost+found to
be inconsistent, and unremovable. From Ethan Solomita <ethan@geocast.com>.
Reviewed by fvdl.
2000-08-03 14:52:39 +00:00
mycroft 9496d82675 Add a missing newline in one message.
(The fact that I got this message using softdep should probably disturb
someone...)
2000-07-14 02:43:44 +00:00
christos c1936bfd69 - ARGH /brick fvdl
- Put back the change from revision 1.31
1999-12-12 23:53:26 +00:00
bouyer 15ca2512dc Add a missing '\n'. 1999-11-28 20:03:17 +00:00
mrg f6bf35c814 fix lp64 lossage. 1999-11-17 00:29:54 +00:00
fvdl f2651c65ac Fix %d <-> long mismatch. 1999-11-15 20:31:51 +00:00
fvdl 5a92829791 Update for softdep code. 1999-11-15 19:19:41 +00:00
fvdl a905c40444 Changes for softdep code. 1999-11-15 19:18:24 +00:00
christos 0e578b8b02 make sure that we don't try to allocate negative memory when blks == 0. 1999-09-06 19:52:28 +00:00
is 69741f8d3d Fix typo. 1999-05-01 20:04:14 +00:00
mycroft f6590b22cd Clean up SYNOPSIS formatting. 1999-03-07 11:02:05 +00:00
bouyer 3e3f9c7795 #include machine/bswap.h and remove -lutil. 1999-01-15 13:32:05 +00:00
christos 7b57bf6d78 Adjust for DKTYPENAME changes. 1998-11-12 16:19:47 +00:00
thorpej df7e58ed2e Use DINODE_SIZE rather than sizeof(struct dinode) and/or pointer arithmetic. 1998-10-23 01:13:33 +00:00
ross 029a64cc29 from Erik Bertelsen <erik@mediator.uni-c.dk>
{ put } { in } { lots } { of } { these } { to } { shut } { up } { egcs }
1998-08-25 19:18:12 +00:00
mycroft 519d858510 __AUDIT__ cleanup. 1998-07-28 19:22:54 +00:00
mycroft 217e6f7a7e const poisoning. 1998-07-26 20:32:42 +00:00
mycroft 2d452ae63c Remove redundant declaration. 1998-07-26 20:28:55 +00:00
msaitoh 6e6138d601 fix typo. 1998-05-25 10:41:57 +00:00
mycroft 72a3da3933 copyback_cg() tried to copy too much if the cylinder group info was smaller
than 8k.  From PR 5404.
1998-05-06 02:45:09 +00:00
kleink 38103c73ff Need <time.h> for time() prototype. 1998-04-01 15:55:43 +00:00
kleink 3072a632c5 Need <time.h> for ctime() and time() prototypes. 1998-04-01 15:38:58 +00:00
mrg 8578360272 use extern int over extern 1998-03-30 02:07:59 +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
fvdl e5bc90f40c Merge with Lite2 + local changes 1998-03-01 02:20:01 +00:00
mjacob b6558b2b59 Hmmm..fsck_ffs has to really be able to alwasy work, and if you've got
a *huge* (like 600GB) filesystem, you need to not be limited by resource
limits.
1997-11-02 01:42:44 +00:00
mycroft e96e918e60 Use bsd.subdir.mk as appropriate. 1997-10-11 09:34:07 +00:00
christos e230a48b57 CFLAGS->CPPFLAGS 1997-10-10 19:47:50 +00:00
enami 9f86d6ed5e Don't declare optind and optarg. 1997-10-01 02:15:48 +00:00
lukem 8b07f7ca3d for now, #ifdef out a couple of chunks that were added in the lite2 merge 1997-09-24 09:24:21 +00:00
lukem e808c63383 unnecessary file from lite-2 merge 1997-09-21 04:08:55 +00:00
lukem ea79507baf reintroduce clarity changes made in rev1.14 that were lost in the lite2 merge 1997-09-21 03:51:34 +00:00
lukem 90c9455b48 remove -g from CFLAGS= 1997-09-21 03:49:53 +00:00
lukem 103e158ba5 remove some code that was obsoleted by mycroft's changes to
propagate() in dir.c rev 1.14.

this was accidentally re-introduced in the lite-2 merge, and could
cause filesystem corruption.
1997-09-21 03:06:47 +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
lukem 50badc6f7a imported from lite-2 1997-09-16 15:06:55 +00:00
mrg 52ff5d8fee make these compile on the alpha after WARNS=1. 1997-09-16 08:37:01 +00:00
lukem 6277ca4089 use .Nm correctly 1997-09-15 01:39:32 +00:00
lukem b1db038303 * cleanup for WARNS=1
* deprecate register
* cleanup manpage
* remove unused docheck() func
* prefix hex numbers with '0x'
* getopt returns -1 not EOF
1997-09-14 14:36:29 +00:00
gwr 10e180cc49 Back out the .PATH.c changes. The .depend problem (and others)
will be fixed using the new .NOPATH make feature instead.
1997-05-08 21:11:01 +00:00
gwr 012e528f2e Use .PATH.c: ... 1997-05-06 20:44:56 +00:00
mrg b6daab9f37 lost+found directories are mode -1700 1997-04-21 11:34:37 +00:00
lukem bfdbb2379f The fs level (ref: fsck -c ...) can be determined from the second
line of the output from dumpfs(8), not the first line. part of [bin/1353]
1997-04-21 05:35:19 +00:00
mouse 80c0d60f84 alternate -> alternative, per PR 2643 1997-03-08 13:47:08 +00:00
mikel 9b8074878a use += instead of = for CFLAGS 1997-02-21 07:47:49 +00:00
mikel d894f16336 fix reboot(8) xref 1996-12-27 05:51:14 +00:00
mikel 875986c568 eliminate obsolete references to mkfs(8);
from Klaus Klein <kleink@layla.inka.de>
1996-12-26 04:33:34 +00:00
christos b3e604c22a - sort and remove unused options.
- If no filesystem is specified or an incorrect option, print usage information
1996-10-22 16:35:04 +00:00
christos 3cd14137ee Update this to reflect reality after the fsck/fsck_ffs split. 1996-10-22 16:32:44 +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 c5d8ca200f - util.h -> fsutil.h 1996-09-27 22:45:10 +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 5c78d726e4 File sizes in FFS are u_int64_t. 1996-05-25 09:57:36 +00:00
mycroft 28670f694a Oops; use %x to print out masks, not %d. 1996-05-21 17:36:21 +00:00
mycroft e14f61b1f7 Check fs_[bf]mask, fs_maxfilesize, fs_maxsymlinklen, and fs_q[bf]mask,
since incorrect values may cause the kernel to malfunction.
1996-05-21 17:25:56 +00:00
mycroft 6dc46f6326 Adjust the logic a bit so we `nif' can't overflow. 1996-05-21 16:58:12 +00:00
mycroft 92a822c250 Remove previous (incorrect) change, and tidy up a bit to make it
clearer what's going on.
1996-05-21 15:32:16 +00:00
mrg 8c4136ca25 initalise dino to zero. pr#2098 1996-05-21 12:42:38 +00:00
mycroft 5f98044780 Try looking up the file system name in fstab. From greywolf@starwolf.com,
slightly modified.
1996-05-11 14:27:50 +00:00
cgd fea3644f0b check in changes proposed in PR 2006 (approved by J.T.), to rename fsck
to fsck_ffs, so that in the future 'fsck' can be a wrapper than invokes
appropriate filesystem-specific checker programs.  For now, the only
user-visible change is that the names have changed in the manual page
and in error messages; fsck and fsck.8 are now links to fsck_ffs and
fsck_ffs.8, until the rest of the transition is complete.
1996-04-05 01:44:24 +00:00
mycroft afdfe1b51f Use fs_csaddr to find the cg summary area. From der Mouse, PR 1366. 1996-01-18 21:55:27 +00:00
thorpej 9952e89162 Squish some type bugs pointed out by Jonathan Stone. 1995-12-17 06:03:36 +00:00
thorpej 78bd4a1051 Make this compile with -Werror. 1995-12-14 22:17:26 +00:00
jtc 0a1e7de7b6 merge in changes from 1.1 release branch 1995-11-28 05:25:28 +00:00
cgd e85da9ab29 recognize 'ffs' and 'ufs' as meaning the same thing. 1995-07-12 03:39:53 +00:00
cgd 5f6a15bcbe implement a 'force check' flag, '-f'. I used the SunOS name, but the Digital
semantics.  now:
	(1) dirty file systems will always be checked; nothing new there.
	(2) if not '-f' clean file systems will _NEVER_ be checked,
		i.e. they won't be checked even if -p isn't specified.  This
		allows one to 'fsck -p ; fsck' to preen, then clean up
		anything that 'fsck -p' barfs on, without waiting for the
		clean file systems to be checked again.
	(3) if '-f' clean file systems will ALWAYS be checked.  This
		allows people to put 'fsck -fp' into /etc/rc on systems
		where they're leery of the FS clean flag state, need
		the extra reliability, and can afford time 'wasted'
		in checks.
The assumption made here is that if a file system is marked clean, it
_IS CLEAN_, really, and shouldn't be checked unless fsck is explicitly
told to (with -f).  This should be a valid assumption, but may not be in
the presence of file system bugs.  Documentation updated to note '-f'.
1995-07-12 01:49:16 +00:00
cgd 788733b7a9 typeof(timeval.tv_sec) != time_t 1995-06-07 17:14:21 +00:00
cgd 555d4b510e slightly clean rcs ids, etc. 1995-04-23 10:33:03 +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
mycroft 283b35b06f Make sure to recreate the `..' entry in the root directory if missing. 1995-03-20 00:40:10 +00:00
cgd 0114e805ce convert to new RCS Id conventions; reduce my headache 1995-03-18 14:54:19 +00:00
cgd 9235328d5a functions which are 'fake-varaargs' should be passed longs, not ints. 1995-02-10 23:26:14 +00:00
mycroft 700673cebf Change some spacing to match Kirk's view of the world. 1994-12-28 00:15:50 +00:00
mycroft 0826920c54 Mostly sync with CSRG. 1994-12-28 00:03:49 +00:00
mycroft e5d0c2de0f Copy fs_maxcluster when comparing superblocks. 1994-12-27 19:26:57 +00:00
cgd 06e2955ff1 specify man pages the new way. 1994-12-22 10:44:04 +00:00
cgd d71db3e4a6 light clean, and make it compile against new header files. 1994-12-18 15:55:41 +00:00
cgd 73cf954189 adjust; from jimj. 1994-12-06 19:13:02 +00:00
cgd 5eeab43e28 more cleanups from Jim Jegers, passed over by me. 1994-12-05 20:15:31 +00:00
mycroft 54477c5285 Use the S_IS*() macros, and make this compile again after Chris's changes to ufs. 1994-10-28 16:55:05 +00:00
mycroft bedf1adf67 Get the byte order right when creating `.' and `..' entries. 1994-10-28 16:54:05 +00:00
mycroft 195d1d6f4e On a recursive call to fsck_readdir() through getpathname(), don't attempt to
fix a problem that's already being fixed.
1994-10-28 16:53:13 +00:00
mycroft c10923f665 dircheck() shouldn't be looking at d_type or d_namlen in blank entries
*at all*.  Not only is it wrong, but it causes a serious problem on
little-endian machines, since after -c2 conversion, d_type will often
be > 15.
1994-10-06 14:24:17 +00:00
mycroft 4922d725cf Remove some more uses of obsolete functions. 1994-09-23 23:48:10 +00:00
mycroft ea7b5d4ec6 Eliminate uses of some obsolete functions. 1994-09-23 14:26:58 +00:00
mycroft 815971855a A correct fix for the byte order problem when reconnecting. 1994-09-20 23:31:39 +00:00
mycroft 1466993ef3 Fix oversight in last patch. 1994-07-29 02:31:50 +00:00
mycroft 08d1c5cc81 Fix byte-order problem with directory entry creation. 1994-07-28 00:25:17 +00:00
cgd 138fcd8327 deal with new share/doc strategy 1994-06-30 05:33:30 +00:00
ws f455a4ed05 Reads on raw disks are only guarranteed in multiples of the block size 1994-06-29 11:01:35 +00:00
cgd 5b029eb9a8 update for new doc-make/install strategy 1994-06-25 05:57:47 +00:00
mycroft eadb2ad514 Fix compatibility with old fastlinks. 1994-06-14 22:49:57 +00:00
mycroft 16573e290b Import 4.4-Lite version. 1994-06-13 22:40:40 +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
cgd 97c1f9d08d oops; changed comparison, but not field! 1994-04-25 18:33:42 +00:00
cgd 9a2c884999 need <sys/time.h> 1994-04-25 18:28:42 +00:00
cgd e82c231da3 need <sys/time.h> 1994-04-25 18:23:19 +00:00
cgd 1ddc4aa19f kill some code if SMALL is defined... 1994-04-18 06:08:27 +00:00
cgd eb0f0ad92d fs type names will soon be strings 1994-04-14 03:21:21 +00:00
deraadt 7f4901e6f5 typo 1994-04-13 10:12:33 +00:00
deraadt 8fb90b0ed4 from <dean@fsa.ca>: let "fsck /usr" work. also, if the user does
"fsck /dev/sd0a" attempt to map to the raw device name.
1994-04-09 08:58:31 +00:00
deraadt 73c673cd94 if user does ie, "fsck /etc/group", then types ^C to the CONTINUE
prompt do not dump core. fix from <dean@fsa.ca> (who i will stop
hounding about bug fixes for an hour or two)
1994-04-09 08:53:37 +00:00
cgd c9b86e9473 kill the evil U word! from Mike Long <mike.long@analog.com> 1994-04-06 00:08:58 +00:00
cgd e4ef74f2a0 kill extern'd lseek() 1994-03-28 06:49:06 +00:00
mycroft 0af4689100 Patch from Bruce Evans to deal with file names with NULs in them. 1993-11-05 23:32:06 +00:00
cgd 202167bebb try again to keep it from rebooting endlessly 1993-10-15 15:15:25 +00:00
cgd 86c14aeb7a set the 'clean' flag sometimes, but ignore it when deciding to clean
or not.  this allows you to use this fsck and... reboot your system;
otherwise it would inf-loop rebooting and marking the FS clean,
which would then mark the fs modified, cause a reboot, etc.
1993-10-06 00:52:07 +00:00
mycroft 978ea867b7 #if 0 the fs_clean check for now. 1993-10-03 03:54:38 +00:00
mycroft e1e7cd5d46 Don't set clean flag if -n. 1993-10-01 02:25:19 +00:00
mycroft 5f4ea60f65 Initial count for fs_state is `FS_CLEANFREQ'. 1993-10-01 01:48:01 +00:00
mycroft 3bceafed83 Skip check if filesystem is marked clean and isn't too dusty, only with -p.
Set clean flag after checking a filesystem.
1993-10-01 01:45:30 +00:00
jtc adb370a8b4 Updated to -mandoc macros. 1993-08-05 20:34:26 +00:00
mycroft e9d867ef50 Add RCS identifiers. 1993-08-01 17:54:45 +00:00
mycroft dfb9caab49 Add RCS indentifiers. 1993-08-01 07:32:48 +00:00
mycroft cda4f8f6ee Add RCS identifiers. 1993-08-01 05:37:30 +00:00
mycroft 90c92bff60 Add support for fast symlinks. 1993-06-13 21:08:27 +00:00
cgd 1d3699fbdc i don't think we're in sys.386bsd any more... 1993-04-28 05:43:55 +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