summaryrefslogtreecommitdiffstats
path: root/sbin/fsck_ffs/inode.c
diff options
context:
space:
mode:
authortruckman <truckman@FreeBSD.org>2004-10-08 20:44:47 +0000
committertruckman <truckman@FreeBSD.org>2004-10-08 20:44:47 +0000
commit78abfd32f0f68e14f413541b1f360e4c166045a5 (patch)
treeaf6db7840e73d182ffa04c61044510d44fa56004 /sbin/fsck_ffs/inode.c
parentf5ef5456b3860f6305fc2281c6ccdd143a02cf56 (diff)
downloadFreeBSD-src-78abfd32f0f68e14f413541b1f360e4c166045a5.zip
FreeBSD-src-78abfd32f0f68e14f413541b1f360e4c166045a5.tar.gz
Eliminate linked list used to track inodes with an initial link
count of zero and instead encode this information in the inode state. Pass 4 performed a linear search of this list for each inode in the file system, which performs poorly if the list is long. Reviewed by: sam & keramida (an earlier version of the patch), mckusick MFC after: 1 month
Diffstat (limited to 'sbin/fsck_ffs/inode.c')
-rw-r--r--sbin/fsck_ffs/inode.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/sbin/fsck_ffs/inode.c b/sbin/fsck_ffs/inode.c
index 729f25e..e470f99 100644
--- a/sbin/fsck_ffs/inode.c
+++ b/sbin/fsck_ffs/inode.c
@@ -576,10 +576,12 @@ blkerror(ino_t ino, const char *type, ufs2_daddr_t blk)
switch (inoinfo(ino)->ino_state) {
case FSTATE:
+ case FZLINK:
inoinfo(ino)->ino_state = FCLEAR;
return;
case DSTATE:
+ case DZLINK:
inoinfo(ino)->ino_state = DCLEAR;
return;
OpenPOWER on IntegriCloud