Commit Graph

379 Commits

Author SHA1 Message Date
Andrey A. Chernov
532f5941b0 Move parmark 0377 double code after control chars processing 1995-03-29 18:55:20 +00:00
David Greenman
2547597bf4 Added a set of braces to make the compiler happy. 1995-03-29 11:54:02 +00:00
Andrey A. Chernov
702c5e7e17 ttyinput() fixes:
1) Preserve old buffer contents when input buffer overflows.

Old code clear buffer and rewrite it again, if !MAXBEL
(for MAXBEL it does right thing :-).
F.e. if you type too long string, last chars passed,
not first ones as expected.
Moreover, it flush output queue too in this case without any needs.

2) Don't do IXOFF, if IGNCR and c==\r, ignore completely.

3) If PARMRK is active and !ISTRIP and char == 0377
put yet one 0377 to distinguish it from parity mark sequence.
POSIX standard (thanx Bruce).

Reviewed by:
Submitted by:
Obtained from:
CVS:
1995-03-28 15:25:13 +00:00
Andrey A. Chernov
63cadaef19 Bug fixed:
parity/framing/break not completely ignored when IGN* is set
but cause output restarted.
CVS:
1995-03-28 11:09:35 +00:00
Bruce Evans
3aa12267a5 Add and move declarations to fix all of the warnings from `gcc -Wimplicit'
(except in netccitt, netiso and netns) that I didn't notice when I fixed
"all" such warnings before.
1995-03-28 07:58:53 +00:00
David Greenman
6e14d964ac Removed some redundant 'vmio' checks. 1995-03-27 00:11:45 +00:00
David Greenman
f57459b632 Removed third arg (vmio) to allocbuf() that was added with the original
merged cache changes, and figure it out based on the B_VMIO buffer flag.
Fixes a problem where delayed write VMIO buffers would sometimes get
recopied into kernel-alloced memory.

Submitted by:	John Dyson
1995-03-26 23:29:13 +00:00
David Greenman
bc4c84cf7e Added a third "flags" argument to msync() ...as other systems have. 1995-03-25 16:52:24 +00:00
Bruce Evans
a7d783dddb Add more compatibility cruft:
- ignore the partition table if it is identical with the bogus one in
  /usr/src/sys/i386/boot/biosboot/start.S.  Honoring the bogus size
  field was fatal.  The error is detected but other compatibilty
  cruft weakens the error handling too much for this case.
- weaken the partition entry checking to allow the following treatments
  of C/H/S addresses when C should be >= 1024:
    (1) allow C = 1023, H = max, S = max.
    (2) allow C to be correct modulo 1024.
  Other compatibilty cruft weakens the error handling to allow all
  C/H/S addresses, but there too many errors were reported.

Improve error messages:
- print C/H/S addresses if relevant.
- distinguish primary partition table from extended partition tables.
- don't use diskerr() except for i/o errors.
1995-03-25 12:07:31 +00:00
David Greenman
3ed8a40336 Use 'p' rather than 'curproc' when appropriate. 1995-03-25 01:34:21 +00:00
David Greenman
b35ba931bd Use NDINIT macro to initialize fields for namei. 1995-03-25 01:20:38 +00:00
Peter Dufault
3749fcff67 Set it so you can add and remove line disciplines without replicating
code for looking for open slots in table (and you could hide the table
if you wanted to).
1995-03-21 11:24:05 +00:00
David Greenman
f550a707bd Added a new version of trap_pfault() that disallows kernel page faults
to the user address space unless pcb_onfault is set. The code is currently
commented out because iBCS2 and process debugging parts of the kernel
need to be changed/fixed first.
1995-03-21 07:16:12 +00:00
David Greenman
c6d5f3ac3e Changed some #ifdef DIAGNOSTIC code that I added to be #ifdef DEBUG. 1995-03-21 07:02:51 +00:00
David Greenman
b946193056 Fixed vinvalbuf() to work like NFS wants it to. The previous code wouldn't
flush pages in the vm object if V_SAVE was true.
1995-03-21 01:13:16 +00:00
David Greenman
62b71ed629 Don't gain/lose a reference to the object when yanking its pages in
vinvalbuf()...it will cause vnode locking problems in vm_object_terminate,
and isn't necessary anyway.
1995-03-20 10:19:09 +00:00
David Greenman
ff769afc81 Don't attempt to sync pages in the V_SAVE case of vinvalbuf; doing so can
lead to a deadlock. Just let the VM system deal with it.
1995-03-20 02:08:24 +00:00
David Greenman
9022e4ad9c Fixed bug introduced in the previous commit - the lock must be held until
after the call to exec_check_permissions().
1995-03-19 23:27:57 +00:00
David Greenman
f5277ae71e Lose the lock on the vnode. Changes to implement proper locking in the
vnode pager now require this.

Submitted by:	John Dyson
1995-03-19 23:08:12 +00:00
David Greenman
edf8a81561 Removed redundant newlines that were in some panic strings. 1995-03-19 14:29:26 +00:00
David Greenman
967a3bf893 Fix from Doug Rabson: Don't try to release a pbuf we didn't get.
Minor style change by me.
1995-03-19 13:28:54 +00:00
David Greenman
50475e8bd3 Removed unnecessary call to vnode_pager_uncache(). We automatically clear
the VTEXT flag after all mappers have finished with the object.
1995-03-19 12:08:03 +00:00
David Greenman
ab828ab8bd Moved call to vnode_pager_uncache in rename() to before the VOP_RENAME.
It was previously after the VOP_RENAME and the reference and lock on
the vnode had already been lost, allowing interesting internel
inconsistencies. This is one of the two reasons why freefall was crashing
every hour or two (the other being nullfs bugs).
Don't call vnode_pager_uncache in revoke(). revoke() is only allowed on
VCHR and VBLK vnodes.
1995-03-19 11:16:58 +00:00
David Greenman
d7e3d98a5e Patch from Kirk McKusick to fix a bug introduced in the Poul's vfs_cache
rewrite.
1995-03-19 09:33:51 +00:00
David Greenman
0338878131 Woops, add back that #define...it's used later in the file. 1995-03-18 07:06:51 +00:00
David Greenman
9e4817309b Fixed comments and removed b_cylinder #define. 1995-03-18 06:38:04 +00:00
David Greenman
89247e0412 Integrated change from 1.1.5: Fixed broken disksort to sort by pblkno
rather than by cylinder.
1995-03-18 06:32:48 +00:00
David Greenman
6a21a04a14 Changed names of goaway routines into shutdown routines. 1995-03-17 04:18:07 +00:00
Bruce Evans
b5e8ce9f12 Add and move declarations to fix all of the warnings from `gcc -Wimplicit'
(except in netccitt, netiso and netns) and most of the warnings from
`gcc -Wnested-externs'.  Fix all the bugs found.  There were no serious
ones.
1995-03-16 18:17:34 +00:00
Bruce Evans
fe7172b1a6 Fix support for extended partitions (forgot to release the buffer). 1995-03-15 16:25:08 +00:00
David Greenman
5eb7d0cd2e Special cased the handling of mb_map in the M_WAITOK case. kmem_malloc()
now returns NULL and sets a global 'mb_map_full' when the map is full.
m_clalloc() has further been taught to expect this and do the right thing.
This should fix the "mb_map full" panics that several people have reported.
1995-03-15 07:52:06 +00:00
Bruce Evans
ec00834c18 Finish the previous change. The device name got lost in diskerr(). 1995-03-12 08:17:30 +00:00
Poul-Henning Kamp
47f196941e Update a couple of counters. 1995-03-12 02:01:20 +00:00
David Greenman
3d2a8cf3d9 Added a comment. 1995-03-11 22:29:07 +00:00
David Greenman
17dda4c929 Added some additional DIAGNOSTIC code that makes sure that freed
memory addresses and types are with the valid range. Increased
MAX_COPY to 256 (used to verify no freed memory use with DIAGNOSTIC).
1995-03-11 22:28:16 +00:00
David Greenman
f8a0b2dd88 Reorganized an if() expression for efficiency. 1995-03-10 21:18:24 +00:00
David Greenman
914e6eb70d Whoops, back out that last change - I misread what Poul had done there. 1995-03-10 20:29:51 +00:00
David Greenman
dbd90d413f Don't thrash the name cache while trying to fill up the object cache.
(Make a new cache entry until desiredvnodes is reached).
1995-03-10 20:26:29 +00:00
David Greenman
a74a73d96c Removed some #include's of unnecessary include files. 1995-03-10 08:44:20 +00:00
Poul-Henning Kamp
fbd6e6c9ef Clean up and improve the namecache.
1. We always keep one 16th of the vnodes on the freelist, so that the
namecache doesn't get trashed.  It used to be that it wasn't a problem, but
the only vnodes getting released these days are directories and things which
Clean up and improve the namecache.

1. We always keep one 16th of the vnodes on the freelist, so that the
namecache doesn't get trashed.  It used to be that it wasn't a problem, but
the only vnodes getting released these days are directories and things which
gets forced out of the VM/cache.  The latter is not numerous enough to keep
the pool of vnodes needed for the namecache sufficiently big.

2. Purge invalid entries in the namecache as soon as we notice them.  This
avoids a stale entry pushing out a valid entry on the LRU list.

3. Speed up the lookup in the namecache by avoid a special case branch.

4. Make the cache purge routines do the thing they're supposed to, and in
a decently efficient manner.

5. Make the size of the namecache follow the number of vnodes, so that we
can always point to all the vnodes we have in core.

6. Readability has gone way up.

7. Added a "options NCH_STATISTICS" feature that will gather more
detailed statistics on the performance of the namecache.

Reviewed by:    davidg

(cvs is dumping core on me :-(  )
1995-03-09 20:27:04 +00:00
Poul-Henning Kamp
b2e10d6d6f Clean up and improve the namecache.
1. We always keep one 16th of the vnodes on the freelist, so that the
namecache doesn't get trashed.  It used to be that it wasn't a problem, but
the only vnodes getting released these days are directories and things which
gets forced out of the VM/cache.  The latter is not numerous enough to keep
the pool of vnodes needed for the namecache sufficiently big.

2. Purge invalid entries in the namecache as soon as we notice them.  This
avoids a stale entry pushing out a valid entry on the LRU list.

3. Speed up the lookup in the namecache by avoid a special case branch.

4. Make the cache purge routines do the thing they're supposed to, and in
a decently efficient manner.

5. Make the size of the namecache follow the number of vnodes, so that we
can always point to all the vnodes we have in core.

6. Readability has gone way up.

7. Added a "options NCH_STATISTICS" feature that will gather more
detailed statistics on the performance of the namecache.

Reviewed by:	davidg
1995-03-09 20:23:45 +00:00
Poul-Henning Kamp
a0e8a1e29b Another little optimization to the nameicache.
If an entry is stale, ditch it.
1995-03-08 01:40:44 +00:00
Poul-Henning Kamp
2425396b27 Improve the quality of the hash used in the namei-cache. 1995-03-08 01:08:03 +00:00
David Greenman
5dcf309046 Removed most of the special policy regarding the seperation of VMIO and
dir/metadata buffers as it seems to have anomolous effects.
1995-03-07 19:53:27 +00:00
David Greenman
acc835fd3f Put VAGE vnodes at the head of the free list. 1995-03-07 18:59:45 +00:00
Poul-Henning Kamp
30f467d84a Update vfs_cache.c to use the <sys/queue.h> macros. This makes it easier
to read, but doesn't change the speed.

Reviewed by:	phk
Obtained from:	via NetBSD
1995-03-06 06:45:52 +00:00
David Greenman
9bd1697199 Added some more of John's "anti-chatter" fixes - set the page activation
count to 0 after activating the page; the previous behavior biased the
pages too high in some cases.

Submitted by:	John Dyson
1995-03-04 15:16:07 +00:00
Bruce Evans
7262c5ee2c Support extended DOSpartitions.
Accept even suspicious partitions.

Moved most handling of the compatibility slice to dsopen().

Report i/o errors.
1995-03-04 11:44:05 +00:00
Bruce Evans
2973a0eba4 Don't warn about missing labels for non-BSD slices.
Don't print debugging messages by default.

Initialize the compatibility slice here and not in the machine-dependent
code.

Fix initialization of the label for the whole disk slice.

Make it clear that write protection of labels doesn't apply when there is
no label.
1995-03-04 11:42:27 +00:00
David Greenman
403ef252fa Removed obsolete vtrace() remnants. 1995-03-04 03:24:45 +00:00