Commit Graph

24 Commits

Author SHA1 Message Date
fvdl
1cf3a3db94 * Implement optional 32 <-> 64 bit directory cookie translation. This uses
the directory cache as translation table. See nfs_subs.c for comments.
  Makes the code a bit more complex to look at than I would have liked,
  but doesn't affect the speed of the default behavior.
* Optimize caching behavior a bit when buffers are invalidated.
* Save some RPCs in readdir operations by not bothering if there is
  a small amount left to do to fill the buffer. It'll be done in the
  next RPC with a larger chunk anyway. Wastes a bit of buffer space
  but is faster.
* Make n_vattr an allocated vattr struct. This avoids nfsnode bloat,
  and is friendlier to the malloc routines.
1997-10-19 01:46:15 +00:00
fvdl
7f7d814e67 * New directory entry caching system. Provides full caching of any
directory cookie that may be thrown back at us from userspace, up
  to a size limit. Fixes double entry problem.
* Split flags for internal and external use in the NFS mount structure.
* Fix some buffer structure fields that weren're being used correctly.
* Fix missing directory cache inval call in nfs_open.
* Limit on NFS_DIRBLKSIZ no longer needed, bumped to the more reasonable
  value of 8k.
* Various other things that I forget, all related to the dir caching
  somehow, though.
1997-10-10 01:53:17 +00:00
fvdl
acdbbd5215 Do locking around nfsnode hashing (perhaps even right this time!) 1997-07-07 23:34:55 +00:00
fvdl
d9e3ab6bcb Revert until I have time to fix it today (lock applied wrongly). 1997-07-07 11:50:49 +00:00
fvdl
1680996881 Put lock around nfs node hashing to avoid race conditions, as MALLOC
or getnewvnode may block.
1997-07-06 12:42:06 +00:00
fvdl
7a970115da Fixes from BSDI (thanks go to Keith Bostic). Original RCS messages:
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().
1997-02-22 02:45:48 +00:00
fvdl
744438b408 Don't set sillyrename field to 0 for directories, as it's in a union with
the head of the cookie list. Fixes PR 3215, fix supplied by
Hiroshi Tezuka <tezuka@trc.rwcp.or.jp>. Should also fix M_NFSDIROFF
memory leak.
1997-02-12 17:26:56 +00:00
mycroft
c52352c819 Add a set of generic file system operations that most file systems use.
Also, fix some time stamp bogosities.
1996-09-01 23:47:48 +00:00
fvdl
5ac7df1caf Bring in a merge of Rick Macklem's NFSv3 code from Lite2 1996-02-18 11:53:36 +00:00
christos
e4c93ec893 nfs prototype changes 1996-02-09 21:48:19 +00:00
cgd
3e0efb4d89 changes to make this work on systems where pointers & longs are 64 bits.
This is mostly just changes to make the stuff that goes over the wire
use fixed-size types.
1995-12-19 23:07:11 +00:00
mycroft
f7c13d44bd More LIST/CIRCLEQ migration. 1994-08-18 22:47:43 +00:00
cgd
fccfa11af5 New RCS ID's, take two. they're more aesthecially pleasant, and use 'NetBSD' 1994-06-29 06:39:25 +00:00
mycroft
d87a71b8c8 Undo last change. 1994-06-13 15:39:13 +00:00
gwr
3247b5928d Fix unresolved: prtactive 1994-06-13 15:33:32 +00:00
mycroft
cde1d47595 Update to 4.4-Lite fs code, with local changes. 1994-06-08 11:33:09 +00:00
cgd
d071d1cf05 some prototype cleanup, eliminate/replace bogus types (e.g. quad and
u_quad) -> use better types (e.g. quad_t & u_quad_t in inodes),
some cleanup.
1994-04-25 03:49:27 +00:00
cgd
f7003b8eba blow away all vestiges of nfsnode locking.
(1) it's unnecessary
	(2) it causes machines to hang (yup!)
	(3) it'd be gone in a few days anyway (it'd been yanked out
		of 4.4-Lite by macklem long ago)
It was only there because macklem couldn't originally decide if things
should be locked, or not...
1994-04-21 23:23:29 +00:00
pk
4013a20ab3 Enable nfs_lock(); useful when IO_APPEND'ing. 1994-03-01 20:31:09 +00:00
pk
e85a637bca Update {a,m}time vnode attributes on special files a la ufs_vnode.c,
but make it a non-urgent operation, to leave us some performance.
1994-02-15 21:07:10 +00:00
mycroft
95b048b53a Canonicalize all #includes. 1993-12-18 00:40:47 +00:00
cgd
7b2afa7fe6 incorporate changes from 0-9-base to 0-9-ALPHA 1993-07-28 02:20:34 +00:00
cgd
f4b489f71c more rcs id adding and header cleanup. i like vi macros! 1993-05-20 03:18:35 +00:00
cgd
61f282557f initial import of 386bsd-0.1 sources 1993-03-21 09:45:37 +00:00