freebsd-nq/sys
Bruce Evans fba2e6106f Quick fix for non-unique inode numbers for hard links. We use the
byte offset of the directory entry for the inode number for all types
of files except directories, although this breaks hard links for
non-directories even if it doesn't cause overflow.  Just ignore this
broken inode number for stat() and readdir() and return a less broken
one (the block offset of the file), so that applications normally can't
see the brokenness.

This leaves at least the following brokenness:
- extra inodes, vnodes and caching for hard links.
- various overflow bugs.  cd9660 supports 64-bit block numbers, but we
  silently ignore the top 32 bits in isonum_733() and then drop another
  10 bits for our broken inode numbers.  We may also have sign extension
  bugs from storing 32-bit extents in ints and longs even if ints are
  32-bits.  These bugs affect DVDs.  mkisofs apparently limits them
  by writing directory entries first.

Inode numbers were broken mainly in 4.4BSD-Lite2.  FreeBSD-1.1.5 seems
to have a correct implementation modulo the overflow bugs.  We need
to look up directory entries from inodes for symlinks only.  FreeBSD-1.1.5
use separate fields (iso_parent_extent, iso_parent) to point to the
directory entry.  4.4BSD-Lite doesn't have these, and abuses i_ino to
point to the directory entry.  Correct pointers are impossible for
hard links, but symlinks can't be hard links.
2002-05-22 08:50:18 +00:00
..
alpha - Apparently, the Alpha ABI mandates that arguments be passed sign-extended 2002-05-17 05:45:39 +00:00
amd64 Permit alternative break sequence to break to debugger in GENERIC. Breakage 2002-05-21 23:35:51 +00:00
arm Move MI stuff out of MD param.h files. 2002-05-14 20:35:29 +00:00
boot Fixed to conflict labels. 2002-05-21 12:53:48 +00:00
cam Add a Quirk entry for the USB SimpleTech UCF-100 compact flash reader. 2002-05-19 21:59:28 +00:00
coda More s/file system/filesystem/g 2002-05-16 21:28:32 +00:00
compat Lock down a socket, milestone 1. 2002-05-20 05:41:09 +00:00
conf Add code to make default mutexes adaptive if the ADAPTIVE_MUTEXES kernel 2002-05-21 20:47:11 +00:00
contrib Merge updates from 3.4.26 - 3.4.27. 2002-04-27 16:56:25 +00:00
crypto Remove macros that are defined elsewhere. 2002-04-21 10:32:48 +00:00
ddb Reconnect db_elf.c to the build (now under "options DDB_NOKLDSYM"). It 2002-05-07 10:59:52 +00:00
dev Use correct inactivity timeout of 2 minutes rather than 24 seconds due to 2002-05-20 19:33:49 +00:00
fs Quick fix for non-unique inode numbers for hard links. We use the 2002-05-22 08:50:18 +00:00
geom Introduce the concept of "magic spaces", and implement them in most of 2002-05-21 20:33:49 +00:00
gnu Add an ext2_uninit() routine that undoes the actions performed by 2002-05-18 22:18:17 +00:00
i4b Fix a problem which could cause some machines to hang after a warm boot. 2002-05-10 12:04:04 +00:00
i386 Permit alternative break sequence to break to debugger in GENERIC. Breakage 2002-05-21 23:35:51 +00:00
ia64 o Add records for PCI bus and PCI device errors. 2002-05-22 02:25:06 +00:00
isa After some comments from bde, rewrite the loops to avoid turning the 2002-05-14 21:28:45 +00:00
isofs/cd9660 Quick fix for non-unique inode numbers for hard links. We use the 2002-05-22 08:50:18 +00:00
kern Add appropriate IA32 "pause" instructions to improve performanec on 2002-05-21 22:26:35 +00:00
libkern
modules Remove asr from the ia64 build. Its use of KERNBASE appears i386 2002-05-19 03:59:06 +00:00
net Include <sys.systm.h> for the declaration of some atomic functions -- don't 2002-05-22 06:26:44 +00:00
netatalk Lock down a socket, milestone 1. 2002-05-20 05:41:09 +00:00
netatm Lock down a socket, milestone 1. 2002-05-20 05:41:09 +00:00
netgraph Lock down a socket, milestone 1. 2002-05-20 05:41:09 +00:00
netinet - Change the newly turned INVARIANTS #ifdef blocks (they were changed from 2002-05-21 18:52:24 +00:00
netinet6 Lock down a socket, milestone 1. 2002-05-20 05:41:09 +00:00
netipx Lock down a socket, milestone 1. 2002-05-20 05:41:09 +00:00
netkey Lock down a socket, milestone 1. 2002-05-20 05:41:09 +00:00
netnatm Lock down a socket, milestone 1. 2002-05-20 05:41:09 +00:00
netncp Lock down a socket, milestone 1. 2002-05-20 05:41:09 +00:00
netns Lock down a socket, milestone 1. 2002-05-20 05:41:09 +00:00
netsmb Lock down a socket, milestone 1. 2002-05-20 05:41:09 +00:00
nfs
nfsclient Lock down a socket, milestone 1. 2002-05-20 05:41:09 +00:00
nfsserver Lock down a socket, milestone 1. 2002-05-20 05:41:09 +00:00
pc98 MFi386: revision 1.519 2002-05-14 12:31:47 +00:00
pccard
pci Enhance the use of the watchdog timer in this driver so that it will 2002-05-15 17:05:28 +00:00
posix4 Change p_can{debug,see,sched,signal}()'s first argument to be a thread 2002-05-19 00:14:50 +00:00
powerpc Make this more FreeBSD-ish. 2002-05-19 08:16:25 +00:00
rpc
security/lomac Lock down a socket, milestone 1. 2002-05-20 05:41:09 +00:00
sparc64 Update tsb_tte_enter prototype per tsb.c rev 1.20. 2002-05-21 02:15:37 +00:00
sys Optimize spin mutexes for UP kernels without debugging to just enter and 2002-05-21 20:34:28 +00:00
tools include systm.h in vnode_if.c so that panic is defined when we're doing 2002-05-04 02:35:13 +00:00
ufs Remove IFS from 5.0-CURRENT. This facilitates introducing UFS2 as 2002-05-19 00:11:08 +00:00
vm o Make contigmalloc1() static. 2002-05-22 01:01:37 +00:00
Makefile Milestone #1 in cross-arch make releases. 2002-04-26 17:55:27 +00:00