OpenBSD CVS

CVS log for src/sbin/fsck_ffs/inode.c


[BACK] Up to [local] / src / sbin / fsck_ffs

Request diff between arbitrary revisions


Default branch: MAIN


Revision 1.52 / (download) - annotate - [select for diffs], Thu May 9 08:35:40 2024 UTC (3 weeks, 2 days ago) by florian
Branch: MAIN
CVS Tags: HEAD
Changes since 1.51: +5 -2 lines
Diff to previous 1.51 (colored)

ctime(3) and ctime_r(3) can fail when timestamps are way off.
Add missing error checks to all calls under sbin/

Input kettenis, millert
OK millert

Revision 1.51 / (download) - annotate - [select for diffs], Tue Jan 9 03:16:00 2024 UTC (4 months, 3 weeks ago) by guenther
Branch: MAIN
CVS Tags: OPENBSD_7_5_BASE, OPENBSD_7_5
Changes since 1.50: +2 -3 lines
Diff to previous 1.50 (colored)

Delete support for FFS filesystems before the in-inode symlink
optimization.  As observed by ali_farzanrad(at)riseup.net, support
for these was broken in the 5.5 release in early 2014 by the time_t
changes.  No one noticed before now, so clearly this isn't something
we need to continue to support; rejecting in ffs_validate() is an
improvement.

Also: simplify DIRSIZ(), drop OLDDIRFMT and NEWDIRFMT, tests of
fs_maxsymlinklen against zero, #ifdef tests of FS_44INODEFMT, and
remove support for newfs -O0, last used in 2016.

ok miod@

Revision 1.50 / (download) - annotate - [select for diffs], Mon Jul 13 06:52:53 2020 UTC (3 years, 10 months ago) by otto
Branch: MAIN
CVS Tags: OPENBSD_7_4_BASE, OPENBSD_7_4, OPENBSD_7_3_BASE, OPENBSD_7_3, OPENBSD_7_2_BASE, OPENBSD_7_2, OPENBSD_7_1_BASE, OPENBSD_7_1, OPENBSD_7_0_BASE, OPENBSD_7_0, OPENBSD_6_9_BASE, OPENBSD_6_9, OPENBSD_6_8_BASE, OPENBSD_6_8
Changes since 1.49: +11 -9 lines
Diff to previous 1.49 (colored)

Both phase 1 and phase 5 need the cylinder group meta data, so save those
in phase one to be used in phase 5, unless we're tight on memory.
From FreeBSD; ok bket@

Revision 1.49 / (download) - annotate - [select for diffs], Sun Sep 16 02:43:11 2018 UTC (5 years, 8 months ago) by millert
Branch: MAIN
CVS Tags: OPENBSD_6_7_BASE, OPENBSD_6_7, OPENBSD_6_6_BASE, OPENBSD_6_6, OPENBSD_6_5_BASE, OPENBSD_6_5, OPENBSD_6_4_BASE, OPENBSD_6_4
Changes since 1.48: +4 -7 lines
Diff to previous 1.48 (colored)

Use user_from_uid(3) and group_from_gid(3) in a few more places
that do repeated lookups.  OK tb@

Revision 1.48 / (download) - annotate - [select for diffs], Fri Dec 16 17:44:59 2016 UTC (7 years, 5 months ago) by krw
Branch: MAIN
CVS Tags: OPENBSD_6_3_BASE, OPENBSD_6_3, OPENBSD_6_2_BASE, OPENBSD_6_2, OPENBSD_6_1_BASE, OPENBSD_6_1
Changes since 1.47: +3 -1 lines
Diff to previous 1.47 (colored)

Eliminate some gcc warnings about 'unused variables', mostly by
adding appropriate #ifdef's around declarations.

ok millert@ (with a tweak I will commit separately)

Revision 1.47 / (download) - annotate - [select for diffs], Thu Dec 10 17:26:59 2015 UTC (8 years, 5 months ago) by mmcc
Branch: MAIN
CVS Tags: OPENBSD_6_0_BASE, OPENBSD_6_0, OPENBSD_5_9_BASE, OPENBSD_5_9
Changes since 1.46: +2 -3 lines
Diff to previous 1.46 (colored)

Remove NULL-checks before free(). ok tb@

Revision 1.46 / (download) - annotate - [select for diffs], Tue Jan 20 18:22:21 2015 UTC (9 years, 4 months ago) by deraadt
Branch: MAIN
CVS Tags: OPENBSD_5_8_BASE, OPENBSD_5_8, OPENBSD_5_7_BASE, OPENBSD_5_7
Changes since 1.45: +2 -2 lines
Diff to previous 1.45 (colored)

Adjust <sys/param.h> comments regarding use of use of MAXFRAG, or
delete <sys/param.h> if now possible
ok guenther

Revision 1.45 / (download) - annotate - [select for diffs], Fri Jan 16 06:39:57 2015 UTC (9 years, 4 months ago) by deraadt
Branch: MAIN
Changes since 1.44: +10 -6 lines
Diff to previous 1.44 (colored)

Replace <sys/param.h> with <limits.h> and other less dirty headers where
possible.  Annotate <sys/param.h> lines with their current reasons.  Switch
to PATH_MAX, NGROUPS_MAX, HOST_NAME_MAX+1, LOGIN_NAME_MAX, etc.  Change
MIN() and MAX() to local definitions of MINIMUM() and MAXIMUM() where
sensible to avoid pulling in the pollution.  These are the files confirmed
through binary verification.
ok guenther, millert, doug (helped with the verification protocol)

Revision 1.44 / (download) - annotate - [select for diffs], Wed Oct 8 16:28:38 2014 UTC (9 years, 7 months ago) by deraadt
Branch: MAIN
Changes since 1.43: +3 -3 lines
Diff to previous 1.43 (colored)

trivial use of getreallocarray()

Revision 1.43 / (download) - annotate - [select for diffs], Sat Sep 6 04:05:40 2014 UTC (9 years, 8 months ago) by guenther
Branch: MAIN
Changes since 1.42: +2 -2 lines
Diff to previous 1.42 (colored)

inodesc.id_entryno holds a file size, so upgrade it from int to u_int64_t;
  this fixes handling of very large files on FFS2.
Correct a copy-n-pasto that rendered useless the check for allocated
  fragmented that are marked free in the bitmap.
allocdir() returns an inode number, so return an ino_t.
sizeof()*N should be printed with %zu, while direct and indirect block
  numbers should be cast to (long long) use %lld

inodesc.id_entryno fix based on a diff from David Vasek <vasek@fido.cz>
ok krw@ otto@

Revision 1.42 / (download) - annotate - [select for diffs], Wed May 21 18:53:05 2014 UTC (10 years ago) by krw
Branch: MAIN
CVS Tags: OPENBSD_5_6_BASE, OPENBSD_5_6
Changes since 1.41: +2 -2 lines
Diff to previous 1.41 (colored)

Nuke some trailing whitespace to shrink subsequent diffs.

Revision 1.41 / (download) - annotate - [select for diffs], Mon Nov 11 18:51:06 2013 UTC (10 years, 6 months ago) by deraadt
Branch: MAIN
CVS Tags: OPENBSD_5_5_BASE, OPENBSD_5_5
Changes since 1.40: +2 -2 lines
Diff to previous 1.40 (colored)

incorrect %lld for an int

Revision 1.40 / (download) - annotate - [select for diffs], Sun Nov 3 02:22:07 2013 UTC (10 years, 7 months ago) by krw
Branch: MAIN
Changes since 1.39: +8 -6 lines
Diff to previous 1.39 (colored)

Add missing (long long) cast of variable, (long long) casts
for defines fragnum, fsbtodb, cgsblock, and cgdmin.

Revision 1.39 / (download) - annotate - [select for diffs], Fri Nov 1 17:36:18 2013 UTC (10 years, 7 months ago) by krw
Branch: MAIN
Changes since 1.38: +8 -6 lines
Diff to previous 1.38 (colored)

Sprinkle (long long) casts where %lld is being used to print daddr_t
variables. Some random whitespace/knf repairs encountered on the way.

ok miod@ on inspection, feedback & more suggestions from millert@

Revision 1.38 / (download) - annotate - [select for diffs], Tue Jun 11 16:42:04 2013 UTC (10 years, 11 months ago) by deraadt
Branch: MAIN
CVS Tags: OPENBSD_5_4_BASE, OPENBSD_5_4
Changes since 1.37: +6 -6 lines
Diff to previous 1.37 (colored)

final removal of daddr64_t.  daddr_t has been 64 bit for a long enough
test period; i think 3 years ago the last bugs fell out.
ok otto beck others

Revision 1.37 / (download) - annotate - [select for diffs], Wed Apr 24 13:46:29 2013 UTC (11 years, 1 month ago) by deraadt
Branch: MAIN
Changes since 1.36: +11 -8 lines
Diff to previous 1.36 (colored)

pretty print bigger off_t
ok tedu otto

Revision 1.36 / (download) - annotate - [select for diffs], Sun May 8 14:38:40 2011 UTC (13 years ago) by otto
Branch: MAIN
CVS Tags: OPENBSD_5_3_BASE, OPENBSD_5_3, OPENBSD_5_2_BASE, OPENBSD_5_2, OPENBSD_5_1_BASE, OPENBSD_5_1, OPENBSD_5_0_BASE, OPENBSD_5_0
Changes since 1.35: +2 -2 lines
Diff to previous 1.35 (colored)

Small memory optimization from NetBSD; ok krw@ millert@

Revision 1.35 / (download) - annotate - [select for diffs], Sun Apr 24 07:07:03 2011 UTC (13 years, 1 month ago) by otto
Branch: MAIN
Changes since 1.34: +2 -3 lines
Diff to previous 1.34 (colored)

remove support for (very) old ffs on-disk formats; ok krw@ and no
objection form the usual suspects

Revision 1.34 / (download) - annotate - [select for diffs], Sat Apr 16 16:37:21 2011 UTC (13 years, 1 month ago) by otto
Branch: MAIN
Changes since 1.33: +25 -4 lines
Diff to previous 1.33 (colored)

Blend in some code from netbsd and freebsd that reduces memory consumption
and speeds things up in a lot of cases.
Prompted by Amit Kulkarni; ok krw@ on a slighly diffrenent incarnation

Revision 1.33 / (download) - annotate - [select for diffs], Tue Oct 27 23:59:32 2009 UTC (14 years, 7 months ago) by deraadt
Branch: MAIN
CVS Tags: OPENBSD_4_9_BASE, OPENBSD_4_9, OPENBSD_4_8_BASE, OPENBSD_4_8, OPENBSD_4_7_BASE, OPENBSD_4_7
Changes since 1.32: +1 -9 lines
Diff to previous 1.32 (colored)

rcsid[] and sccsid[] and copyright[] are essentially unmaintained (and
unmaintainable).  these days, people use source.  these id's do not provide
any benefit, and do hurt the small install media
(the 33,000 line diff is essentially mechanical)
ok with the idea millert, ok dms

Revision 1.32 / (download) - annotate - [select for diffs], Mon Dec 29 18:06:10 2008 UTC (15 years, 5 months ago) by otto
Branch: MAIN
CVS Tags: OPENBSD_4_6_BASE, OPENBSD_4_6, OPENBSD_4_5_BASE, OPENBSD_4_5
Changes since 1.31: +3 -3 lines
Diff to previous 1.31 (colored)

Some forms of inode corruption can make remsize and thus isize go
negative and cause SEGVs. Handle this the same as an out of range
blockno. ok jsg@ (also victim) pedro@ thib@

Revision 1.31 / (download) - annotate - [select for diffs], Tue Jun 10 23:10:29 2008 UTC (15 years, 11 months ago) by otto
Branch: MAIN
CVS Tags: OPENBSD_4_4_BASE, OPENBSD_4_4
Changes since 1.30: +14 -14 lines
Diff to previous 1.30 (colored)

reduce mem usage by about 20% by packing state and type of an inode in a single
byte. Original diff by drahn@; twists by me; ok millert@ thib@

Revision 1.30 / (download) - annotate - [select for diffs], Mon Jun 25 19:59:55 2007 UTC (16 years, 11 months ago) by otto
Branch: MAIN
CVS Tags: OPENBSD_4_3_BASE, OPENBSD_4_3, OPENBSD_4_2_BASE, OPENBSD_4_2
Changes since 1.29: +14 -14 lines
Diff to previous 1.29 (colored)

Teach fsck_ffs about 64-bit block addresses. ok (and help) moritz@ pedro@

Revision 1.29 / (download) - annotate - [select for diffs], Tue Apr 10 16:08:17 2007 UTC (17 years, 1 month ago) by millert
Branch: MAIN
Changes since 1.28: +102 -74 lines
Diff to previous 1.28 (colored)

Add support for checking ffs2 filesystems.  From pedro@ based on
the ufs2 changes in FreeBSD by Kirk Mckusick.

Revision 1.28 / (download) - annotate - [select for diffs], Mon Feb 12 16:41:07 2007 UTC (17 years, 3 months ago) by otto
Branch: MAIN
CVS Tags: OPENBSD_4_1_BASE, OPENBSD_4_1
Changes since 1.27: +19 -9 lines
Diff to previous 1.27 (colored)

remsize must be signed to avoid wrapping around to some huge number.
Solves a case were fsck_ffs was causing a segv. If it didn't do that
it would have mangled the filesystem later, very probably.
Diff from FreeBSD; ok millert@ pedro@

Revision 1.27 / (download) - annotate - [select for diffs], Wed Jan 24 13:24:58 2007 UTC (17 years, 4 months ago) by bluhm
Branch: MAIN
Changes since 1.26: +5 -2 lines
Diff to previous 1.26 (colored)

A reallocated root directory gets ownership of the fsck process.
If lost+found is created, it gets ownership of the root directory.

ok pedro

Revision 1.26 / (download) - annotate - [select for diffs], Sat Oct 11 01:43:45 2003 UTC (20 years, 7 months ago) by tedu
Branch: MAIN
CVS Tags: OPENBSD_4_0_BASE, OPENBSD_4_0, OPENBSD_3_9_BASE, OPENBSD_3_9, OPENBSD_3_8_BASE, OPENBSD_3_8, OPENBSD_3_7_BASE, OPENBSD_3_7, OPENBSD_3_6_BASE, OPENBSD_3_6, OPENBSD_3_5_BASE, OPENBSD_3_5
Changes since 1.25: +4 -4 lines
Diff to previous 1.25 (colored)

consistent newlines, from tom cosgrove at arches-consulting.com.

Revision 1.25 / (download) - annotate - [select for diffs], Thu Sep 25 04:23:26 2003 UTC (20 years, 8 months ago) by deraadt
Branch: MAIN
Changes since 1.24: +10 -7 lines
Diff to previous 1.24 (colored)

do not crank size first, do not do p = realloc(p, ...

Revision 1.24 / (download) - annotate - [select for diffs], Mon Aug 25 23:28:15 2003 UTC (20 years, 9 months ago) by tedu
Branch: MAIN
CVS Tags: OPENBSD_3_4_BASE, OPENBSD_3_4
Changes since 1.23: +16 -16 lines
Diff to previous 1.23 (colored)

rename struct dinode to ufs1_dinode.  clears the namespace and makes
way for some future work.  no function changes yet.
help testing otto@ and markus@

Revision 1.23 / (download) - annotate - [select for diffs], Mon Jun 2 20:06:15 2003 UTC (21 years ago) by millert
Branch: MAIN
Changes since 1.22: +3 -7 lines
Diff to previous 1.22 (colored)

Remove the advertising clause in the UCB license which Berkeley
rescinded 22 July 1999.  Proofed by myself and Theo.

Revision 1.22 / (download) - annotate - [select for diffs], Sat Apr 26 00:39:28 2003 UTC (21 years, 1 month ago) by deraadt
Branch: MAIN
Changes since 1.21: +8 -8 lines
Diff to previous 1.21 (colored)

string cleaning; ok tedu

Revision 1.21 / (download) - annotate - [select for diffs], Fri Aug 23 09:09:04 2002 UTC (21 years, 9 months ago) by gluk
Branch: MAIN
CVS Tags: OPENBSD_3_3_BASE, OPENBSD_3_3, OPENBSD_3_2_BASE, OPENBSD_3_2
Changes since 1.20: +31 -57 lines
Diff to previous 1.20 (colored)

- Convert function definitions to new style
- eliminate trailing whitespace
- remove casts that aren't needed.
- make rcsid strings const, for -Wall compilation.

 from tedu <grendel@zeitbombe.org>

Revision 1.20 / (download) - annotate - [select for diffs], Wed May 22 08:21:02 2002 UTC (22 years ago) by deraadt
Branch: MAIN
Changes since 1.19: +5 -4 lines
Diff to previous 1.19 (colored)

strcpy, sprintf death; mpech ok

Revision 1.19 / (download) - annotate - [select for diffs], Sat Feb 16 21:27:34 2002 UTC (22 years, 3 months ago) by millert
Branch: MAIN
CVS Tags: OPENBSD_3_1_BASE, OPENBSD_3_1
Changes since 1.18: +4 -4 lines
Diff to previous 1.18 (colored)

Part one of userland __P removal.  Done with a simple regexp with some minor hand editing to make comments line up correctly.  Another pass is forthcoming that handles the cases that could not be done automatically.

Revision 1.18 / (download) - annotate - [select for diffs], Mon Nov 5 07:39:16 2001 UTC (22 years, 7 months ago) by mpech
Branch: MAIN
Changes since 1.17: +20 -20 lines
Diff to previous 1.17 (colored)

kill more registers;

millert@ ok

Revision 1.17 / (download) - annotate - [select for diffs], Sat Jul 7 18:26:12 2001 UTC (22 years, 11 months ago) by deraadt
Branch: MAIN
CVS Tags: OPENBSD_3_0_BASE, OPENBSD_3_0
Changes since 1.16: +3 -3 lines
Diff to previous 1.16 (colored)

major -Wall cleanup, almost complete

Revision 1.16 / (download) - annotate - [select for diffs], Tue May 15 19:32:39 2001 UTC (23 years ago) by mickey
Branch: MAIN
Changes since 1.15: +3 -3 lines
Diff to previous 1.15 (colored)

error out if failed to malloc memory for inode cache entry; deraadt@ ok

Revision 1.15 / (download) - annotate - [select for diffs], Fri Mar 2 08:33:55 2001 UTC (23 years, 3 months ago) by art
Branch: MAIN
CVS Tags: OPENBSD_2_9_BASE, OPENBSD_2_9
Changes since 1.14: +14 -2 lines
Diff to previous 1.14 (colored)

Make fsck aware of soft updates.
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)

Revision 1.14 / (download) - annotate - [select for diffs], Fri Aug 6 20:41:06 1999 UTC (24 years, 10 months ago) by deraadt
Branch: MAIN
CVS Tags: OPENBSD_2_8_BASE, OPENBSD_2_8, OPENBSD_2_7_BASE, OPENBSD_2_7, OPENBSD_2_6_BASE, OPENBSD_2_6
Changes since 1.13: +3 -3 lines
Diff to previous 1.13 (colored)

uid_t and gid_t, and use %u

Revision 1.13 / (download) - annotate - [select for diffs], Sat Oct 11 20:19:36 1997 UTC (26 years, 7 months ago) by niklas
Branch: MAIN
CVS Tags: OPENBSD_2_5_BASE, OPENBSD_2_5, OPENBSD_2_4_BASE, OPENBSD_2_4, OPENBSD_2_3_BASE, OPENBSD_2_3, OPENBSD_2_2_BASE, OPENBSD_2_2
Changes since 1.12: +3 -3 lines
Diff to previous 1.12 (colored)

Never involve negative numbers in unsigned expressions.  Fixes a segfault some
bad fs images triggers.

Revision 1.12 / (download) - annotate - [select for diffs], Mon Oct 6 20:22:32 1997 UTC (26 years, 8 months ago) by deraadt
Branch: MAIN
Changes since 1.11: +0 -12 lines
Diff to previous 1.11 (colored)

back out vfs lite2 till after 2.2

Revision 1.11 / (download) - annotate - [select for diffs], Mon Oct 6 15:33:33 1997 UTC (26 years, 8 months ago) by csapuntz
Branch: MAIN
Changes since 1.10: +14 -2 lines
Diff to previous 1.10 (colored)

VFS Lite2 Changes

Revision 1.10 / (download) - annotate - [select for diffs], Wed Jun 25 18:12:13 1997 UTC (26 years, 11 months ago) by kstailey
Branch: MAIN
Changes since 1.9: +3 -3 lines
Diff to previous 1.9 (colored)

(foo *)0 -> NULL

Revision 1.9 / (download) - annotate - [select for diffs], Sun Jun 22 20:10:48 1997 UTC (26 years, 11 months ago) by tholo
Branch: MAIN
Changes since 1.8: +3 -3 lines
Diff to previous 1.8 (colored)

Avoid an overflow when checking inode numbers; from FreeBSD PR #3528 by
Ian Dowse <iedowse@maths.tcd.ie>

Revision 1.8 / (download) - annotate - [select for diffs], Sun Oct 20 08:36:34 1996 UTC (27 years, 7 months ago) by tholo
Branch: MAIN
CVS Tags: OPENBSD_2_1_BASE, OPENBSD_2_1
Changes since 1.7: +41 -41 lines
Diff to previous 1.7 (colored)

Sync with NetBSD 961019

Revision 1.7 / (download) - annotate - [select for diffs], Sat Oct 12 03:06:54 1996 UTC (27 years, 7 months ago) by tholo
Branch: MAIN
Changes since 1.6: +61 -3 lines
Diff to previous 1.6 (colored)

From Kirk McKusick:
  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.

Revision 1.6 / (download) - annotate - [select for diffs], Sun Jun 23 14:30:29 1996 UTC (27 years, 11 months ago) by deraadt
Branch: MAIN
CVS Tags: OPENBSD_2_0_BASE, OPENBSD_2_0
Changes since 1.5: +2 -1 lines
Diff to previous 1.5 (colored)

update rcsid

Revision 1.5 / (download) - annotate - [select for diffs], Tue May 28 12:37:26 1996 UTC (28 years ago) by deraadt
Branch: MAIN
Changes since 1.4: +5 -4 lines
Diff to previous 1.4 (colored)

be more careful

Revision 1.4 / (download) - annotate - [select for diffs], Mon Dec 18 16:41:58 1995 UTC (28 years, 5 months ago) by deraadt
Branch: MAIN
Changes since 1.3: +6 -5 lines
Diff to previous 1.3 (colored)

use ufs_daddr_t; another time_t cleanup

Revision 1.3 / (download) - annotate - [select for diffs], Sat Dec 16 13:50:57 1995 UTC (28 years, 5 months ago) by deraadt
Branch: MAIN
Changes since 1.2: +5 -3 lines
Diff to previous 1.2 (colored)

handle time_t things that really are not time_t

Revision 1.2 / (download) - annotate - [select for diffs], Mon Nov 13 04:57:57 1995 UTC (28 years, 6 months ago) by deraadt
Branch: MAIN
Changes since 1.1: +1 -1 lines
Diff to previous 1.1 (colored)

time_t typecast; from bernd@arresum.inka.de; netbsd pr#1724

Revision 1.1.1.1 / (download) - annotate - [select for diffs] (vendor branch), Wed Oct 18 08:43:31 1995 UTC (28 years, 7 months ago) by deraadt
CVS Tags: netbsd_1_1
Changes since 1.1: +0 -0 lines
Diff to previous 1.1 (colored)

initial import of NetBSD tree

Revision 1.1 / (download) - annotate - [select for diffs], Wed Oct 18 08:43:31 1995 UTC (28 years, 7 months ago) by deraadt
Branch: MAIN

Initial revision

This form allows you to request diff's between any two revisions of a file. You may select a symbolic revision name using the selection box or you may type in a numeric name using the type-in text box.