Commit Graph

55 Commits

Author SHA1 Message Date
cgd 90688fce27 Change the second and third args to struct vfsops' (*vfs_mount)() to
'const char *', and 'void *', respectively.  The second arg is taken directly
from user arguments, and is const there, so must be const in the prototypes
and functions.  The third arg is also taken directly from user arguments.
It doesn't have to be changed, but since it's cleaner to keep the type
the same as the user arg's type, and I'm already making the 'const char *'
change...
1996-12-22 10:10:12 +00:00
thorpej f02e8b3cf0 Make NFSSERVER work without NFSCLIENT. This is achieved by splitting
the client and server/shared data initialization into separate functions,
and calling the server/shared initialization directly from main().
Problem noted in PR #1308 (Kenneth Stailey) and PR #1780 (Chris Demetriou).
Fix suggested in PR #1780 by Chris Demetriou, and munged a bit by me,
and OK'd by Frank van der Linden <fvdl@netbsd.org>.
1996-12-03 00:22:43 +00:00
thorpej aa25de69d1 NFS performance improvement from Doug Rabson/FreeBSD:
Improve the queuing algorithms used by NFS' asynchronous i/o.  The
existing mechanism uses a global queue for some buffers and the
vp->b_dirtyblkhd queue for others.  This turns sequential writes into
randomly ordered writes to the server, affecting both read and write
performance.  The existing mechanism also copes badly with hung
servers, tending to block accesses to other servers when all the iods
are waiting for a hung server.

The new mechanism uses a queue for each mount point.  All asynchronous
i/o goes through this queue which preserves the ordering of requests.
A simple mechanism ensures that the iods are shared out fairly between
active mount points.

Reviewed/integrated/approved by Frank van der Linden <fvdl@netbsd.org>
1996-12-02 22:55:39 +00:00
fvdl 735944405b Enhancements from Matthias Drochner:
- Try V3 first for diskless booting. Fall back to V2 if V3 fails.
	- optionally (option NFS_BOOT_TCP) try a TCP mount first
	  for diskless booting. Fall back to UDP if it fails.
	- Enable switching between UDP and TCP for remounts.
1996-10-20 13:13:22 +00:00
christos bcf4552fb1 revert kprintf changes 1996-10-13 01:39:03 +00:00
christos 117a51c5a5 printf -> kprintf, sprintf -> ksprintf 1996-10-10 23:31:17 +00:00
pk 6e8ba625ef Ignore the mountpoint's `v_usecount' in nfs_unmount() if MNT_FORCE is on.
This takes care of two related problems:
	- `umount -f' wouldn't work if someone's working directory is
	  the filesystem root.
	- vfs_unmountall() would complain about a busy `/' on a
	  diskless setup.
1996-06-24 10:26:40 +00:00
cgd d73abf41aa avoid unnecessary checks of m_get/MGET/etc.'s return values. When
they're called with M_WAIT, they are defined to never return NULL.
1996-06-14 22:21:12 +00:00
fvdl 2847784948 * Make mounts with symlinks work (needed for direct mounts with amd). PR #1917
* Never change the NQNFS flag and/or version when just doing an update mount.
  Fixes a problem that made diskless booting impossible under some
  circumstances.
1996-05-23 22:47:27 +00:00
fvdl fa29f1090f Return earlier on error in nfs_statfs. Should fix problem reported by
both mrg and cgd.
1996-03-24 23:58:10 +00:00
christos 3fac949f8f Fix printf format strings. 1996-03-17 02:38:20 +00:00
fvdl 146f96c2ce Make readdirsize default to rsize if rsize is explicitly specified,
and readdirsize isn't.
1996-03-13 00:38:55 +00:00
fvdl 5ac7df1caf Bring in a merge of Rick Macklem's NFSv3 code from Lite2 1996-02-18 11:53:36 +00:00
gwr b29ca3a272 Do the RPC to bootparamd a little later (just before the mountd call)
so that we do not ask for the "swap" path when swapping on disk.
1996-02-13 17:53:32 +00:00
christos e4c93ec893 nfs prototype changes 1996-02-09 21:48:19 +00:00
jtc 299e1fe9df Rename struct timespec fields to conform to POSIX.1b 1996-02-01 00:31:05 +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 5482957905 splnet --> splsoftnet 1995-08-12 23:59:09 +00:00
cgd 8f62c773e8 don't assume the f_fsnamelen is nul-truncated or longer than MFSNAMELEN 1995-06-18 14:45:14 +00:00
mycroft 41a1b362f8 Fix more off by one errors. 1995-06-02 19:50:11 +00:00
gwr 8f7b63df4e Print the "root/swap on ..." messages here.
Add NFS_BOOT_OPTIONS for things like NFSMNT_NOCONN.
1995-03-18 05:54:10 +00:00
mycroft 2f805fa51b copy*str() should use size_t. 1995-03-09 12:05:21 +00:00
mycroft 7b85c59a4e Turn mountlist into a CIRCLEQ, and handle setting and checking of MNT_ROOTFS
differently.
1995-01-18 06:15:17 +00:00
pk e052143aab When updating an NFS mountpoint, we cannot just increase `rsize' or `wsize'
without also adjusting the corresponding socket buffers. We could probably
call sbrelease/sbreserve/soreserve ourselves without much harm, but we'd
have to duplicate much of the logic in nfs_connect(). In stead, blow the
socket away entirely and let nfs_connect() do its job again.
1994-08-23 09:31:00 +00:00
mycroft f7c13d44bd More LIST/CIRCLEQ migration. 1994-08-18 22:47:43 +00:00
gwr f23d6f0929 Add the option NFS_BOOT_RWSIZE to allow diskless boot configuration
to start with a reduced NFS read and write size (need for wd8003).
1994-08-14 03:35:27 +00:00
cgd 8814bea1a6 kill two errant spaces. 1994-08-12 03:49:24 +00:00
gwr 38cca96798 Diskless boot will now bind the local socket to a reserved port to
satisfy picky servers.  Also fix some missing initializations.
(Thanks to Chuck Cranor for PR#394 -- now fixed.)
1994-08-11 22:25:32 +00:00
mycroft 2896174213 Save FS type at mount time for some later tests. 1994-07-03 09:24:01 +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
gwr ccb36b6b7d Minor nits: replace ... with ...
p->p_cred->pc_ucred	p->p_ucred
	x / DEV_BSIZE		x >> DEV_BSHIFT
1994-06-28 19:12:59 +00:00
pk bccc2c3c1b straighten out diskless swap code somewhat. 1994-06-22 14:01:45 +00:00
gwr b7692860e5 Fix false "hits" in the attribute cache when booting diskless.
(Yet another thing that breaks when time.tv_sec is near zero...)
1994-06-14 03:29:12 +00:00
gwr 0784b58d30 New diskless boot code (uses RARP, bootparamd). 1994-06-13 15:28:55 +00:00
mycroft cde1d47595 Update to 4.4-Lite fs code, with local changes. 1994-06-08 11:33:09 +00:00
cgd 6dad8d7a8a put sync printing in one place 1994-05-18 00:35:07 +00:00
mycroft 0ae81ecb6b Trivial function name change. 1994-05-13 06:12:51 +00:00
mycroft 945e278f4e Cast some args to caddr_t. 1994-05-11 22:26:09 +00:00
cgd 4917d8beec make fs types consistent over new kernels. also, some proto foo. 1994-04-23 07:54:38 +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
glass a3b042140f revised nfs diskless support. uses bootp+rpc to gather parameters 1994-04-18 06:18:05 +00:00
cgd 93159ea799 fs types are names now. 1994-04-14 04:05:45 +00:00
cgd a61aa87590 make damn sure nothing's holding on the the mount point vnode 1994-04-10 01:22:23 +00:00
glass 9f7fed2901 make panic string unique 1994-03-31 05:44:49 +00:00
cgd ed9fe288db oops; fix last 1993-12-21 08:07:09 +00:00
cgd 6aa0cb00c6 from jsp: Changed to get attributes of root node and
generate correct type, rather than assuming it's a directory.
This allows Amd direct mounts to work correctly.
1993-12-21 07:49:30 +00:00
mycroft 95b048b53a Canonicalize all #includes. 1993-12-18 00:40:47 +00:00
pk 0499563755 Exclusive access when manipulating flag field in mount structure. 1993-12-07 23:37:43 +00:00
pk f98138858c Don't allow the NFS_LOCKBITS to be set or reset from user land.
Allow other flags (SOFT,HARD,SPONGY, etc) to be altered by `mount -u'.
1993-12-07 23:29:27 +00:00
pk 0d3fa06d24 Allow changing of various NFS parameters by using `mount -u ...'. 1993-12-06 23:38:14 +00:00