1
0
mirror of https://git.FreeBSD.org/src.git synced 2024-12-16 10:20:30 +00:00
freebsd/sys
Matthew Dillon b7303db36e Fix two problems: First, fix the append seek position race that can
occur due to np->n_size potentially changing if nfs_getcacheblk()
    blocks in nfs_write().

    Second, under -current we must supply the proper bufsize when obtaining
    buffers that straddle the EOF, but due to the fact that np->n_size can
    change out from under us it is possible that we may specify the wrong
    buffer size and wind up truncating dirty data written by another
    process.

    Both problems are solved by implementing nfs_rslock(), which allows us
    to lock around sensitive buffer cache operations such as those that
    occur when appending to a file.

    It is believed that this race is responsible for causing dirtyoff/dirtyend
    and (in stable) validoff/validend to exceed the buffer size.  Therefore
    we have now added a warning printf for the dirtyoff/end case in current.

    However, we have introduced a new problem which we need to fix at some
    point, and that is that soft or intr NFS mounts may become
    uninterruptable from the point of view of process A which is stuck waiting
    on rslock while process B is stuck doing the rpc.  To unstick process A,
    process B would have to be interrupted first.

Reviewed by:	Alfred Perlstein <bright@wintelcom.net>
1999-12-14 19:07:54 +00:00
..
alpha Stop calling everthing an XP1000. 1999-12-14 17:50:00 +00:00
amd64 Reclaim UPAGES_HOLE (8k) that was chopped out of process address space. 1999-12-11 10:54:06 +00:00
boot Remove BAD144 support, it has already been disabled for some time. 1999-12-08 09:33:00 +00:00
cam minor comment update 1999-12-13 19:40:00 +00:00
coda Lock reporting and assertion changes. 1999-12-11 16:13:02 +00:00
compat Replace the svr4_sys_getdents64() routine with a port of linux_getdents() -- 1999-12-12 11:25:33 +00:00
compile
conf Merge from sys/i386/conf/files.i386 rev 1.289. 1999-12-13 14:57:51 +00:00
contrib Lock reporting and assertion changes. 1999-12-11 16:13:02 +00:00
ddb Remove unused macro definition. 1999-11-02 22:40:15 +00:00
dev Have another go at the VIA support, this time use the PCI ID form the 1999-12-14 10:25:28 +00:00
fs Fix pointer problem for the Alpha 1999-12-12 21:10:53 +00:00
geom Revamp the devstat priority system. All disks now have the same priority. 1999-12-08 04:45:23 +00:00
gnu struct mountlist and struct mount.mnt_list have no business being 1999-11-20 10:00:46 +00:00
i4b Temporary adjustment to build after pnp changes. There is a new version 1999-12-07 12:06:31 +00:00
i386 Fix the command to launch DMA for 16bit samples. 1999-12-14 06:34:48 +00:00
isa Make this kld'able (#include "joy.h" no longer required as there are no 1999-12-12 20:39:35 +00:00
isofs/cd9660 Commit the kernel part of our DVD support. Nothing much to say really, 1999-12-07 22:25:28 +00:00
kern Bug fix: 1999-12-14 02:23:14 +00:00
libkern Zap c_index() and c_rindex(). Bruce prefers these to implicitly convert 1999-12-10 17:38:41 +00:00
miscfs Lock reporting and assertion changes. 1999-12-11 16:13:02 +00:00
modules Add module for if_ef driver and make it compile. 1999-12-13 16:42:17 +00:00
msdosfs struct mountlist and struct mount.mnt_list have no business being 1999-11-20 10:00:46 +00:00
net Bring up an if_ef driver which allows support for four ethernet 1999-12-13 16:24:22 +00:00
netatalk Change suser_xxx() to suser() where it applies. 1999-04-27 12:21:16 +00:00
netatm Fix a warning (unused variable RCSid) 1999-11-18 08:18:13 +00:00
netgraph New netgraph node type 'pptpgre': this performs GRE encapsulation 1999-12-08 18:55:39 +00:00
netinet Use SEQ_* macros for comparing sequence space numbers. 1999-12-14 15:43:56 +00:00
netinet6 rtcalloc() is removed because it turned out not to be necessary for FreeBSD. 1999-12-09 08:56:50 +00:00
netipx Get rid of the old XNS checksum code and implement it the IPX way. 1999-08-28 18:21:55 +00:00
netkey KAME netinet6 basic part(no IPsec,no V6 Multicast Forwarding, no UDP/TCP 1999-11-22 02:45:11 +00:00
netnatm
netncp Update to version 1.3.4 of ncplib. Cleanup header files. 1999-12-12 05:50:07 +00:00
netns $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
nfs Fix two problems: First, fix the append seek position race that can 1999-12-14 19:07:54 +00:00
nfsclient Fix two problems: First, fix the append seek position race that can 1999-12-14 19:07:54 +00:00
nfsserver Add a readahead heuristic to the NFS server side code. While the server 1999-12-13 17:34:45 +00:00
ntfs Merged NetBSD version, as they have done improvements: 1999-12-03 20:37:40 +00:00
nwfs Fix pointer problem for the Alpha 1999-12-12 21:10:53 +00:00
pc98 Merge from sys/i386/conf/files.i386 rev 1.289. 1999-12-13 14:57:51 +00:00
pccard Move the turning on of the interrupts for the card at the bridge from 1999-12-10 07:02:41 +00:00
pci Fix some problems reported by Mike Pritchard: 1999-12-13 21:45:13 +00:00
posix4 $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
powerpc Make this compile again. (missing #include for RFPROC) 1999-12-06 18:12:29 +00:00
rpc $Id$ -> $FreeBSD$ 1999-08-27 23:45:13 +00:00
svr4 Replace the svr4_sys_getdents64() routine with a port of linux_getdents() -- 1999-12-12 11:25:33 +00:00
sys Bug fix: 1999-12-14 02:23:14 +00:00
tools Use a seperate -c and -h mode. The vnode_if.c file is compiled only into 1999-12-12 16:43:05 +00:00
ufs Lock reporting and assertion changes. 1999-12-11 16:13:02 +00:00
vm Add MAP_NOSYNC feature to mmap(), and MADV_NOSYNC and MADV_AUTOSYNC to 1999-12-12 03:19:33 +00:00
Makefile ${MACHINE} -> ${MACHINE_ARCH} 1999-11-14 13:54:44 +00:00