Commit Graph

58 Commits

Author SHA1 Message Date
mycroft d4026f6eb5 GC the B_CACHE bit. 1998-11-09 01:18:34 +00:00
mycroft 13daec0fb1 Several things:
* Change the usage of B_DONE so that it is only set when a buffer is in sync
  with the data on disk.
* If a buffer is being waited for, don't put it on the age queue.
* Make sure to clear B_DONE when pages are stolen from a buffer.
* Make sure to clear B_CACHE after each use.
* If we find a buffer for the block we want with valid data, but it is too
  small, panic.  (This isn't supposed to happen.)
Fixes potential file corruption problems with clustering.
1998-10-27 23:48:22 +00:00
eeh a2dd74ed79 Merge paddr_t changes into the main branch. 1998-08-13 02:10:37 +00:00
perry 275d1554aa Abolition of bcopy, ovbcopy, bcmp, and bzero, phase one.
bcopy(x, y, z) ->  memcpy(y, x, z)
ovbcopy(x, y, z) -> memmove(y, x, z)
   bcmp(x, y, z) ->  memcmp(x, y, z)
  bzero(x, y)    ->  memset(x, 0, y)
1998-08-04 04:03:10 +00:00
perry 730baa7431 fix sizeofs so they comply with the KNF style guide. yes, it is pedantic. 1998-07-31 22:50:48 +00:00
chs f64abc7b4c add flags arg to hashinit(), to pass to malloc(). 1998-02-07 02:44:44 +00:00
pk 37d77087e8 Check `b_dev' field in bdwrite() before using it as an index into bdevsw[].
`b_dev' value of NODEV happens and is normal if the buffer is on its way
to the underlying device strategy function for the first time.

Also, MFS sillily uses a major device number (255) which cannot be used
to index bdevsw[]. Check marked with XXXs.
1997-07-08 22:03:30 +00:00
pk b7b1073fd0 In bread() and breadn(): if getblk() returns a DELWRI buffer, don't
call biowait() but return `success' immediately. We can return `success'
because buffers with recorded errors are not returned by getblk().
(Takes care of PR#3694).
1997-07-08 21:42:59 +00:00
mycroft 6911ff7d13 Fix two performance issues:
* When a delayed write buffer falls off the LRU queue, arrange for it to go on
  the AGE queue after being flushed out to disk.
* When a delayed write buffer is synced, leave it in its relative position in
  the LRU queue.
1997-04-09 21:12:10 +00:00
cgd c8e4c454f2 curproc was being used directly for ru_{in,ou}block counting. Instead
of using it directly, use a local, and set that local to be curproc
if curproc is not NULL else a pointer to process 0's proc struct.
If syncing disks while handling a panic that occurred while 'curproc'
was NULL, the old code would dereference NULL and die.
1996-10-15 23:06:27 +00:00
christos f443b89c92 backout previous kprintf change 1996-10-13 02:32:29 +00:00
christos 60d201973e printf -> kprintf, sprintf -> ksprintf 1996-10-10 22:46:11 +00:00
mycroft 506cefab8c In the sync case of bwrite(), move the accounting earlier so that so that the
delayed write is logically converted to a sync write, mirroring the async case.
In bdwrite(), move the tape case earlier to avoid needless reassignbuf()s.
1996-06-18 20:50:23 +00:00
pk b298c40fbe Call reassignbuf() at splbio in bdwrite(). 1996-06-17 22:21:31 +00:00
pk 50e7d72655 Protect vnode when updating for started IO on buffers. 1996-06-11 11:15:36 +00:00
christos 4ef330b934 remove include of <sys/cpu.h> 1996-04-22 01:38:12 +00:00
fvdl 56a654e17f Changes for NVSv3 code: pull in more NFS include files into kern_time.c
to get types right (overkill for just one function call, but oh well).
Clear B_NEEDCOMMIT in bdwrite().
1996-02-18 11:57:06 +00:00
christos 09afd77655 More proto fixes 1996-02-09 18:59:18 +00:00
christos e630447d8c First pass at prototyping 1996-02-04 02:17:43 +00:00
cgd 32b4385a97 fix bug pointed out by, and do the cleanup suggested by
Alasdair Baird <alasdair@wildcat.demon.co.uk>.  From pr 1301.
1995-08-02 22:01:46 +00:00
cgd f5bbdfba41 bdwrite() should upgrade writes to tape devices by sending them to
bawrite().  it's logically more correct (doesn't return an error code,
because it's async; bdwrite is also async), it still writes things
in-order, it makes sure the proper accountins is done (see the
wasdelayed cases in bwrite()), and it allows writes to vnodes on volumes
mountd with the MNT_ASYNC to be converted into delayed writes the way
God, err, Kirk intended.  Convert synchronous bwrite()s on MNT_ASYNC
file systems to delayed writes.
1995-07-12 07:56:31 +00:00
cgd 9c3fe30d92 fix long-standing XXX in getblk(): NFS does funky things (somewhat
explained in comments), which can cause a race condition.  amazingly,
the _only_ time i've ever seen or heard of this problem was in some
comments and sources by Rick Macklem, and when running against the
a DEC OSF/1 NFS server running on an Alpha.
1995-07-12 07:39:00 +00:00
cgd 3176641085 fix pr 1128; change vfs_bufstats defn from DIAGNOSTIC - > DEBUG 1995-06-20 10:42:33 +00:00
mycroft 04a0a9a518 Use the new d_type field. 1995-04-10 00:46:51 +00:00
mycroft 642eb11a86 Various code rearrangement. 1994-11-22 01:31:02 +00:00
cgd 6ac2bbfc35 be more careful with types, also pull in headers where necessary. 1994-10-30 21:43:03 +00:00
mycroft f5232de492 Patch to fix `reassignbuf: NULL' messages, from cgd. 1994-08-29 01:47:02 +00:00
cgd ea01579f35 light clean up, use some macros 1994-07-03 07:57:32 +00:00
cgd cf92afd66e New RCS ID's, take two. they're more aesthecially pleasant, and use 'NetBSD' 1994-06-29 06:29:24 +00:00
mycroft 11884bb842 Minor cleanup. 1994-06-14 19:36:14 +00:00
mycroft 699bbb84b6 Update to 4.4-Lite fs code. 1994-06-08 11:28:29 +00:00
cgd ffde2d4a28 minor type pointed out by Onno van der Linden 1994-06-05 13:00:49 +00:00
mycroft 766c830cb5 Clear more flags in brelse(). 1994-05-29 22:50:50 +00:00
mycroft facfcdd2ef Cluster routines want 0-sized bufs. 1994-05-27 11:05:54 +00:00
cgd 7f683b3792 some paranoia, also, clean up spaces vs. tabs 1994-05-19 03:04:01 +00:00
cgd c18ec4dca5 my two favorite reference books 1994-05-18 10:51:13 +00:00
cgd fbd5b44ec7 forgot the damned rcsid 1994-05-18 10:28:14 +00:00
cgd ddca406d72 significant rework, to match 4.4-Lite interfaces, and to comment more
closely from Bach.
1994-05-18 10:24:54 +00:00
cgd 179c5769e3 notdef out vn_bwrite out, for now, so that kernels compile, until new fs stuff 1994-05-17 10:50:56 +00:00
mycroft 6c7bd3b00f Implement new functions for 4.4-Lite file systems, and some general cleanup. 1994-05-17 03:43:46 +00:00
cgd 009e6dd4e9 rearrange some splfoo 1994-04-28 01:17:00 +00:00
cgd ed7e1b86da clean up a little bit, and minor optimization... 1994-04-26 05:40:35 +00:00
cgd 3dda0064a5 Convert mount, vnode, and buf structs to use <sys/queue.h>. Also,
some knf and structure frobbing to do along with it.
1994-04-21 07:47:31 +00:00
ws ce516ff13d Make FFS optional 1994-03-09 21:21:37 +00:00
cgd 07c0d9025d get rid of jolitz hack, and add panic() where appropriate 1994-01-27 07:39:32 +00:00
mycroft 7f50bd1829 Canonicalize all #includes. 1993-12-18 04:21:37 +00:00
cgd 76dbc1192b new specfs.h and fifo.h locations 1993-11-12 05:54:12 +00:00
cgd 889b512ea4 if you try to allocate a buffer larger than MAXBSIZE, panic. 1993-10-26 19:38:55 +00:00
cgd 2ff9ed5060 fix my last change; for some reason i thought that 'p' was defined
in these functions.  use curproc instead.
1993-10-19 23:41:44 +00:00
cgd dfaa02a09b pay for block i/o. slightly different than how done by Mark Tinguely. 1993-10-19 02:47:56 +00:00