freebsd-skq/sys/gnu/fs/ext2fs
bde fee8e1a16f Fixed breakage of mknod() in rev.1.48 of ext2_vnops.c and rev.1.126 of
ufs_vnops.c:

1) i_ino was confused with i_number, so the inode number passed to
   VFS_VGET() was usually wrong (usually 0U).
2) ip was dereferenced after vgone() freed it, so the inode number
   passed to VFS_VGET() was sometimes not even wrong.

Bug (1) was usually fatal in ext2_mknod(), since ext2fs doesn't have
space for inode 0 on the disk; ino_to_fsba() subtracts 1 from the
inode number, so inode number 0U gives a way out of bounds array
index.  Bug(1) was usually harmless in ufs_mknod(); ino_to_fsba()
doesn't subtract 1, and VFS_VGET() reads suitable garbage (all 0's?)
from the disk for the invalid inode number 0U; ufs_mknod() returns
a wrong vnode, but most callers just vput() it; the correct vnode is
eventually obtained by an implicit VFS_VGET() just like it used to be.

Bug (2) usually doesn't happen.
2000-11-04 08:10:56 +00:00
..
COPYRIGHT.INFO Updated/corrected the list of GPL'ed files. 2000-01-01 11:27:50 +00:00
ext2_alloc.c ext2fs relies on UFS support code, and as a result also requires 2000-04-15 17:14:22 +00:00
ext2_balloc.c Separate the struct bio related stuff out of <sys/buf.h> into 2000-05-05 09:59:14 +00:00
ext2_bmap.c This patch corrects the first round of panics and hangs reported 2000-07-24 05:28:33 +00:00
ext2_extern.h Support filesystems with the not-so-new "sparse_superblocks" feature. 2000-11-03 16:41:48 +00:00
ext2_fs_sb.h Fixed clean flag handling: 1998-09-26 06:18:59 +00:00
ext2_fs.h Support filesystems with the not-so-new "sparse_superblocks" feature. 2000-11-03 16:41:48 +00:00
ext2_inode_cnv.c Merged changes in ext2_fs.h between Linux 1.2.2 and Linux 2.3.35. The 2000-01-01 17:39:21 +00:00
ext2_inode.c Fix typo (accessable --> accessible). 2000-06-14 17:53:40 +00:00
ext2_linux_balloc.c Support filesystems with the not-so-new "sparse_superblocks" feature. 2000-11-03 16:41:48 +00:00
ext2_linux_ialloc.c Weaken a bogus dependency on <sys/proc.h> in <sys/buf.h> by #ifdef'ing 2000-10-29 14:54:55 +00:00
ext2_lookup.c Convert all users of fldoff() to offsetof(). fldoff() is bad 2000-10-27 11:45:49 +00:00
ext2_mount.h Introduce extended attribute support for FFS, allowing arbitrary 2000-04-15 03:34:27 +00:00
ext2_readwrite.c Change the write-behind code to take more care when starting 2000-04-02 00:55:28 +00:00
ext2_subr.c Separate the struct bio related stuff out of <sys/buf.h> into 2000-05-05 09:59:14 +00:00
ext2_vfsops.c Support filesystems with the not-so-new "sparse_superblocks" feature. 2000-11-03 16:41:48 +00:00
ext2_vnops.c Fixed breakage of mknod() in rev.1.48 of ext2_vnops.c and rev.1.126 of 2000-11-04 08:10:56 +00:00
fs.h Convert buffer locking from using the B_BUSY and B_WANTED flags to using 1999-06-26 02:47:16 +00:00
i386-bitops.h Fix __asm__ clobber list abuse. 1999-11-15 23:16:06 +00:00
inode.h Add a lock structure to vnode structure. Previously it was either allocated 2000-09-25 15:24:04 +00:00