date: 1997/02/10 18:41:15; author: cp; state: Exp; lines: +8 -2
Make nfs_realign go away on sparc and add functionality to nfsm_disct.
===
[XXX this introduces an ifdef __i386__, see the comment. Should be changed]
date: 1996/07/23 17:14:46; author: donn; state: Exp; lines: +6 -4
Be sure to push out the last page of the file before truncating it.
date: 1996/10/14 22:41:20; author: donn; state: Exp; lines: +2 -2
From Chris: Nfs_link() called vput() on the wrong vnode when aborting
from a cross-device link, which could (and did) lead to crashes.
date: 1996/10/24 16:43:43; author: pjd; state: Exp; lines: +6 -2
Return EOPNOTSUPP when trying to do a setattr with flags.
===
Also (from BSDI too, but the RCS message did not quite describe the change
to this particular file well): move the EROFS a bit further down to
let VOP_ACCESS do it's work and return an 'expected' error value to
a possible layered filesystem.
date: 1995/11/30 20:37:03; author: cp; state: Exp; lines: +25 -14
Change splsoftclock() to splnet();
Make nfsrv_getstream create two copies of data when
splitting up an mbuf rather than two references to the
same external buffer. The symptom this fixes is client
hangs.
date: 1997/02/10 18:41:13; author: cp; state: Exp; lines: +4 -1
Make nfs_realign go away on sparc and add functionality to nfsm_disct.
date: 1996/11/20 20:02:54; author: pjd; state: Exp; lines: +7 -4
In nfsrv_access(), if VOP_ACCESS() returns an error and the
error == EPERM or its not the owner doing the access, return the error.
date: 1995/11/30 20:37:53; author: cp; state: Exp; lines: +3 -3
Change splsoftclock() to splnet();
Make nfsrv_getstream create two copies of data when
splitting up an mbuf rather than two references to the
same external buffer. The symptom this fixes is client
hangs.
date: 1996/10/16 00:06:05; author: ewv; state: Exp; lines: +5 -3
Clear pending signal when an unmount fails, this allows us another chance
at the umount after a short sleep. The fixes a problem where /usr is
mounted via nqnfs and the system hangs on shutdown since the umount()
always fails with EBUSY (inetd is still busy on usr) and since we don't
clear the signal we end up stuck looping and never give inetd a chance to
catch its SIGKILL.
date: 1996/10/23 18:22:14; author: donn; state: Exp; lines: +12 -7
Kirk's changes to prevent races when unmounting. (1) Unmount()
and vfs_unmountall() now call vfs_busy() so that they participates
in the mount structure locking scheme. Dounmount() calls vfs_unbusy()
to unlock things, and makes sure to wake up waiters if there's an
error. (2) The MFS and NQNFS daemons also now use vfs_busy() when
unmounting filesystems. Kirk restructured the code so that a
successful unmount by another process won't leave the possibility
that a daemon might reference a mount structure that has been freed.
date: 1996/09/06 03:00:31; author: donn; state: Exp; lines: +1 -2
Because NFS doesn't implement vnode locking, nfs_inactive() doesn't really
have the vnode locked and hence it can't reliably access the vnode after
it performs a blocking operation. We remove one blocking call and push
the no-op VOP_UNLOCK higher so that we don't access the vnode after we
delete the sillyrename file. This should prevent crashes we've seen in
which the vnode turned into a UFS vnode and caused a panic in ufs_unlock()
when we tried to 'unlock' it.
date: 1996/09/25 19:15:21; author: cp; state: Exp; lines: +4 -0
Kirk's change to not corrupt files after a delete.
date: 1996/11/08 19:53:45; author: donn; state: Exp; lines: +16 -4
Krik's change to solve the paradox that vclean() calls nfs_inactive()
with VXLOCK set on the vnode, and nfs_inactive() was calling vget()
to get a reference on the vnode, which in turn hung on VXLOCK.
Nfs_inactive() now checks v_usecount to make sure that the vnode
is not coming from vclean() before it does a vget().
when paging on Sun4m machines with SuperSPARC processors. Essentially,
the copy/zero operations were done via uncached memory accesses, which
bypassed the snooping logic of the write-back caches, causing stale data
to be copied or generated.
Pointed out by Chris Torek <torek@bsdi.com>
- Implement a simple quirks framework for changers.
- Add a quirk for the Spectra 9000 8mm tape library; it requires a
slightly-longer-than-1-minute delay to take tape inventory. Many
thanks to David Webster at Cygnus Solutions for testing this for me.
to describe here. This should fix the problems with "hanging processes"
people have seen since the original object collapse code was committed.
From Charles Hannum <mycroft@netbsd.org>
Create macros (with names borrowed from Mach 3) to manipulate
object->paging_in_progress, and use them. When decreasing the
paging count, always make sure to wake up anyone waiting.
Fixes `vospgc', `vosca1', and `vosca2' hangs.
to prepare for if_media, and to support EISA 3c59x cards:
* change epconfig() to take a short that encodes the chipset
type (3c509, or Demon/Vortex/Boomerang).
* add distinct 3c509 and Demon/Vortex/Boomerang media-sense
functions to back end.
* Add EISA match/attach support for the 3c592 and 3c597
(Demon) cards as well as the 3c509-comatibl EISA 3c509/3c579.
* Assume that ISA and ISA PnP cards are 3c509-style, until
proof to the contrary (e.g. large packet support).
Tested on 3c595, 3c590, and 3c509b. Not tested on 3c515 or Demon.
one page too many (worse, it unmapped our stack page... Ouch!)
Also, use loadcrp() and such instead of calling pmap_activate
in various places so we have more control over TLB flush.
Now pmap_activate() is called only by locore (and that call is
done only if PMAP_DEBUG is defined). Other minor clean-up...
(RX_RESET, TX_RESET, GLOBAL_RESET).
Commands issued while a reset is in progress may be dropped. The driver
must wait until resets are complete; ep_complete_cmd() does so.
* Change RX_RESET, TX_RESET, GLOBAL_RESET to use ep_complete_cmd().
* Revert epconfig() to use inline RX_RESET, TX_RESET.
That avoids accidentally setting IFF_UP, which breaks both diskless boot,
and "halt" commands issued before the interface is brought up.
devices (obio_norm) or optional address, HSK, and DMA for 5380-based SCSI
controllers (obio_scsi5380). Update all obio-attached drivers
appropriately.
Also, attach fpu to mainbus, rather than obio.
* Add table-driven assembly-coded microtime().
* add boot-time computation of the interpolation table,
allowing the hand-coded microtime() to work with locally-tuned
nonstandard values of HZ or TIMER_FREQ.
* delete old C version of microtime().
Define pmap_resident_count(), pmap_wired_count()
to call pmap_resident_pages(), pmap_wired_pages()
respectively, so we can keep those statistics on
lower-level structures instead of here.