chs
395f8c2177
initialize read creds in nfs_open() too.
2000-12-12 17:13:17 +00:00
fvdl
405b695086
Make sobind() take a struct proc *. It already took curproc and
...
passed it down to the appropriate usrreq function, and this
allows usage for contexts that need to be explicitly different
from curproc (like in the NFS code when binding to a reserved port).
2000-12-10 23:16:28 +00:00
chs
3a5e4f901b
in *_sync(), don't skip vnodes which have (potentially dirty) pages.
2000-12-10 19:36:31 +00:00
chs
f5878a3362
only zero the part of the page after EOF if we're actually
...
initializing the page.
2000-12-09 22:38:23 +00:00
drochner
8f6e088214
add a kernel configuration option to set the string passed in bp_file
...
in diskless BOOTP/DHCP configuration - good for booting different
userland versions depending on the kernel version
2000-12-05 17:59:43 +00:00
fvdl
a0aebb0c36
Initialize 'error' to 0, so that nfs_putpages doesn't return garbage
...
when pages already have been committed and nothing needs to be done.
2000-12-04 12:12:20 +00:00
chs
d324e2eb55
in nfs_open(), initialize the write creds if we're opening for writing.
...
otherwise we would never set them if we only modify the file via mmap().
2000-11-30 07:24:12 +00:00
chs
aeda8d3b77
Initial integration of the Unified Buffer Cache project.
2000-11-27 08:39:39 +00:00
chs
8362134916
put more ISO bits under ifdef ISO.
2000-11-24 23:30:02 +00:00
ad
642267bcc7
Update for hashinit() change.
2000-11-08 14:28:12 +00:00
chs
51c256aa5a
in nfs_flush(), only play games with B_NOCACHE for VREG vnodes.
...
if we do this for VBLK vnodes which are in use by softdep mounts,
brelse() will mark the buffer B_INVAL as well, which makes the
softdep code very unhappy.
2000-11-08 05:20:32 +00:00
fvdl
dcf7889500
Do not accept vnode type changes to an active node. This may wreak
...
havoc if the server erroneously uses the same filehandle for
different files. This changes back revision 1.28; the PR that
that revision fixed doesn't apply anymore, it has been verified
not to be a problem with this change.
2000-10-24 12:02:04 +00:00
matt
04f534474c
Change a DIAGNOSTIC panic slightly to print the locked vnodes and to just
...
print a diagnostic but not panic.
2000-10-24 07:08:48 +00:00
chs
be0d1c56f1
fix nfs iod management so we don't lose i/os when iods die.
2000-10-23 07:18:27 +00:00
chs
65ab1f3650
include opt_inet.h, needed by previous check-in.
2000-10-03 17:18:15 +00:00
itojun
b834fb62c3
check in_ifaddr only if INET is compiled
2000-10-02 04:28:13 +00:00
itojun
23bf957144
perform reverse ARP only if INET is compiled into the kernel
2000-10-02 04:27:57 +00:00
fvdl
06b8ac615d
Avoid unused variables for V2_ONLY case.
2000-09-27 18:36:03 +00:00
enami
29d3e43df9
Don't bother to clear commit information for the vnode of type VNON.
...
It is not necessary since it is a vnode being initialized and it shouldn't
be done since filesystem private data may not be assigned yet.
2000-09-24 06:59:21 +00:00
bjh21
1f4240a461
Extend NFS_V2_ONLY to remove NQNFS lease support as well. Saves another 10k.
2000-09-19 23:26:25 +00:00
fvdl
874d41c959
"ENOBUF" on socket writes isn't really fatal; we may just be too fast
...
for the driver. Don't log the error, just try again. Could try to
be smart and do a backoff, but it's probably not worth the trouble.
2000-09-19 22:21:21 +00:00
fvdl
8d38a9fc8e
Adapt some defaults/max values to be more realistic.
2000-09-19 22:19:12 +00:00
fvdl
de98f0812b
Add fields to deal with commit ranges.
2000-09-19 22:18:40 +00:00
fvdl
861339828d
Update for VOP_FSYNC parameter change. Simplify nfs_flush.
2000-09-19 22:18:03 +00:00
fvdl
ddf47f8f0d
Update for VOP_FSYNC parameter change.
2000-09-19 22:15:41 +00:00
fvdl
45dc18d175
Add prototypes for commitrange functions.
2000-09-19 22:14:59 +00:00
fvdl
09f52ac6fc
Don't do write gathering for v3; it makes no sense. Unless the client
...
is broken and does sync writes all the time, but that's the client's
fault.
2000-09-19 22:14:42 +00:00
fvdl
9ed021b771
Add functions to deal with keeping track of commit ranges.
2000-09-19 22:13:55 +00:00
fvdl
45460eabe0
Initialize the lock needed to serialize commits for one NFS node.
2000-09-19 22:13:01 +00:00
fvdl
899fb781e0
Move handling of B_NEEDCOMMIT buffers to nfs_doio, so that bawrite() calls
...
for them are actually done asynchronously. Idea taken from FreeBSD.
Do away with nfs_writebp completely, it's not needed anymore.
Keep an eye on the range of a file that needs to be committed, and
do it in heaps.
2000-09-19 22:11:47 +00:00
fvdl
7f432c74ab
Bump some defaults and maximums to better values.
2000-09-19 22:05:55 +00:00
fvdl
8fd422dede
Adapt for VOP_FSYNC parameter change.
2000-09-19 22:05:29 +00:00
bjh21
33daa8de6b
New kernel option, NFS_V2_ONLY, which aims to reduce the NFS client to just
...
that required to support NFSv2 mounts. Not finished yet, but already
provides some 44k of saving in code size on arm26. More savings, and some
documentation, are still to come.
2000-09-19 17:04:50 +00:00
fvdl
3ec253a800
Fix bug in access cache that might result in permission being denied
...
needlessly. From Matthias Drochner.
2000-09-19 00:00:18 +00:00
nathanw
7023c5166c
Fix typo in comment.
2000-08-23 23:17:14 +00:00
enami
d7236f8d44
Update nfs mount flags correctly. Fixes a bug introduced in rev. 1.65.
2000-08-23 09:59:22 +00:00
thorpej
7cc27a88c0
Convert namei pathname buffer allocation to use the pool allocator.
2000-08-03 20:41:05 +00:00
thorpej
d07efbc8b8
MALLOC()/FREE() are not to be used for variable size allocations.
2000-08-03 06:15:02 +00:00
simonb
4bb34ff30e
Remove inclusion of <uvm/uvm_extern.h> that was there only to keep
...
<sys/sysctl.h> happy.
2000-07-30 06:22:04 +00:00
jdolecek
b0fb24279c
change the lf_advlock() arguments from
...
int lf_advlock __P((struct lockf **,
off_t, caddr_t, int, struct flock *, int));
to
int lf_advlock __P((struct vop_advlock_args *, struct lockf **, off_t));
This matches common usage and is also compatible with similar change
in FreeBSD (though they use u_quad_t as last arg).
2000-07-22 15:26:11 +00:00
mrg
05e377a0bd
remove include of <vm/vm.h>
2000-06-28 03:30:42 +00:00
mrg
6eeafef261
remove include of <vm/vm.h>
2000-06-27 17:52:28 +00:00
mrg
7083fdcb62
disable the bloated NFS structure check on 64bit sparc64.
2000-06-20 02:29:51 +00:00
assar
6c734cd283
make vfs_getnewfsid only take one argument and fetch the name of the
...
filesystem from the supplied mount argument. also make makefstype
take a const parameter. update all the callers.
2000-06-10 18:27:01 +00:00
fvdl
7cfd328d97
Some tweaks to enable NFS over IPv6. The special-casing of AF_INET
...
should really be removed.
2000-06-09 00:00:17 +00:00
gmcgarry
8d994b82fa
Allow nfs root over token ring. Closes PR6629.
2000-05-28 07:01:09 +00:00
thorpej
21fc65e1a8
sleep() -> tsleep()
2000-05-27 04:52:27 +00:00
enami
c7534ab8ba
- Try to commit another buffer even if previous commit failed except the
...
case that write verf is changed. Suggested by mycroft@netbsd.org .
- Reset wcred to NULL (i.e., write credential isn't decieded) everytime
before gathering buffer for new commit, so that there is a chance to
the commit request is merged.
2000-05-26 08:36:48 +00:00
enami
e79a50b93f
In nfs_flush, if the previous commit succeeded and we may have more
...
uncommitted dirty buffer, attempt to commit them.
2000-05-25 23:28:44 +00:00
pk
72cadd83e4
Fix printf() format.
2000-05-18 08:34:26 +00:00
tsarna
9bd6bb5e81
Auto-adjusting vfs.nfs.iothreads: when mounting the first nfs
...
filesystem, if the number of threads is "-1", meaning it's never been
set, then set it to 4. You can override by setting this to some other
number (including 0) before or after mounting, of course.
Thanks to whoever it was that suggested this on ICB... sorry I don't
remember who.
2000-05-07 01:38:36 +00:00
tsarna
a32696c2de
Death to nfsiod!
...
It is replaced by kernel threads that do the same thing. The number of
kernel threads used is set with the vfs.nfs.iothreads sysctl.
2000-04-15 21:14:48 +00:00
augustss
13e9027f58
Remove more register declarations.
2000-03-30 13:44:53 +00:00
augustss
8529438fe6
Remove register declarations.
2000-03-30 12:51:13 +00:00
simonb
19f0e3f6e8
Delete redundant decl of nfs_vget() - it's in <nfs/nfsmount.h>.
2000-03-30 02:46:36 +00:00
simonb
3e3701895d
Delete redundant decls of fifo_vnodeop_p - it's in <miscfs/fifofs/fifo.h>.
...
Don't need <sys/conf.h> here.
2000-03-30 02:45:19 +00:00
simonb
b6c62dcaae
Delete redundant decl of nfs_pub - it's in <sys/mount.h>.
...
Delete redundant decl of nfsrv_zapsock() - it's in <nfs/nfs_var.h>.
2000-03-30 02:43:58 +00:00
simonb
11bec2d6e1
Delete redundant decl of nfs_pub - it's in <sys/mount.h>.
...
Delete redundant decls of nfsv{2,3}_type - they're in <nfs/nfsproto.h>.
2000-03-30 02:43:13 +00:00
simonb
13e9e9754e
Delete redundant decl of nfs_pub - it's in <sys/mount.h>.
2000-03-30 02:42:17 +00:00
simonb
515481f1ce
Delete redundant decl of nfsv2_vnodeop_p, it's in <nfs/nfsnode.h>.
2000-03-30 02:40:37 +00:00
simonb
0fd09c8496
Don't need to include <sys/conf.h> here.
2000-03-29 03:43:33 +00:00
thorpej
fc96443d15
New callout mechanism with two major improvements over the old
...
timeout()/untimeout() API:
- Clients supply callout handle storage, thus eliminating problems of
resource allocation.
- Insertion and removal of callouts is constant time, important as
this facility is used quite a lot in the kernel.
The old timeout()/untimeout() API has been removed from the kernel.
2000-03-23 07:01:25 +00:00
jdolecek
89015c4648
Add new VFS op routine - vfs_done and call it on filesystem detach
...
in vfs_detach(). vfs_done may free global filesystem's resources,
typically those allocated in respective filesystem's init function.
Needed so those filesystems which went in via LKM have a chance to
clean after themselves before unloading. This fixes random panics
when LKM for filesystem using pools was loaded and unloaded several
times.
For each leaf filesystem, add appropriate vfs_done routine.
2000-03-16 18:08:17 +00:00
enami
747ef6745c
If server name field is overloaded for other purpose, or it just contains
...
NULL string, don't use it as server name.
2000-01-20 08:34:52 +00:00
fvdl
44ab379124
The length check for readdirplus entries wasn't right, causing troubles
...
with 32k readdir sizes. From FreeBSD.
1999-12-05 01:43:06 +00:00
fvdl
5a7300902c
Insert an extra VOP_ACCESS check in nfs_lookup, to avoid cached access
...
mishaps for lookup and getattr. Closes PR 8884.
While at it, cache access RPCs.
1999-11-29 23:34:00 +00:00
fvdl
d901f6eae0
Be more careful to block bio interrupts for some data structures. There
...
were at least a few missed cases where vp->v_{clean,dirty}blkhd were
unprotected since the softdep/trickle sync merge.
1999-11-23 23:52:40 +00:00
fvdl
0b1963121a
Add Kirk McKusick's soft updates code to the trunk. Not enabled by
...
default, as the copyright on the main file (ffs_softdep.c) is such
that is has been put into gnusrc. options SOFTDEP will pull this
in. This code also contains the trickle syncer.
Bump version number to 1.4O
1999-11-15 18:49:07 +00:00
fvdl
f39cfa5c7b
Stuff values in va_blocksize that are closer to reality.
1999-11-01 21:32:41 +00:00
sommerfeld
ff0b960398
Fix bug in error handling for NFSv3 + nqnfs.
...
With nfsv2, the nfsm_reply() macro always causes the service routine
to return if error was nonzero.
With nfsv3, we can keep going after nfsm_reply() without returning,
but nqnfsrv_getlease() didn't take this into account, so add a
return(0) after each error-case nfsm_reply(0).
1999-10-10 02:44:55 +00:00
is
ee1ce1c15e
Don't truncate minor numbers >= 256.
...
Problem reported by Saitoh Masanobu, fix by Frank van der Linden.
1999-09-06 09:27:18 +00:00
jdolecek
2ac419a152
Adapt to cache_lookup() changes.
...
XXX I had no chance to actually test the changes for nfs, but hopefully I got
it right.
Tested by: jdolecek
Rewieved by: wrstuden
1999-09-05 14:28:26 +00:00
drochner
6b4bfbbe10
Wait some seconds after the interface is brought up before packets
...
are sent. Needed at least for if_ti to get the link up.
1999-09-03 20:06:46 +00:00
sommerfeld
5493437dd8
Once the mount structure is definitely doomed, always set the
...
NFSMNT_DISMNT bit in it so that any waiters can go away cleanly.
(formerly, we did this only in the NQNFS/KERB cases).
1999-08-29 18:32:15 +00:00
sommerfeld
873713a5f7
Fix overzealous DIAGNOSTIC check in nfs_disconnect()
...
(fix pr8249, 8288)
1999-08-29 16:29:16 +00:00
wrstuden
3bf14d81e9
Add support for fcntl(2) to generate VOP_FCNTL calls. Any fcntl
...
call with F_FSCTL set and F_SETFL calls generate calls to a new
fileop fo_fcntl. Add genfs_fcntl() and soo_fcntl() which return 0
for F_SETFL and EOPNOTSUPP otherwise. Have all leaf filesystems
use genfs_fcntl().
Reviewed by: thorpej
Tested by: wrstuden
1999-08-03 20:19:16 +00:00
wrstuden
3954583ce7
Teach nfs_lookup() to set PDIRUNLOCK when appropriate. Should resolve
...
PR 8051 by Konrad Schroder.
1999-08-02 18:58:23 +00:00
fvdl
3c9ce57651
Don't try to copy an mbuf that may have been freed in case of an error.
1999-07-30 09:46:24 +00:00
thorpej
d7f9efdafc
In nfs_create(), make sure error is reset to 0 if we restart the operation.
1999-07-29 17:01:21 +00:00
enami
18a17d4777
Don't use the result of inet_ntoa after calling the another inet_ntoa,
...
since they share the same static storage.
1999-07-26 02:16:35 +00:00
wrstuden
5e77d9fec1
Teach nfs_lookup to clear PDIRUNLOCK.
1999-07-08 22:53:08 +00:00
wrstuden
379a26972f
Modify file systems to deal with struct lock in struct vnode. All leaf
...
fs's other than nfs use genfs_lock() for locking.
Modify lookup routines to set PDIRUNLOCK when they unlock the parrent.
1999-07-08 01:05:58 +00:00
drochner
c867601f9f
mount diskless root with "NFSMNT_NOCONN" (which is default in "mount_nfs"
...
for quite a while) to allow certain servers (multihomed, as our DEC NSE
cluster) to be used as root filesystem without special tweaks
1999-07-07 21:29:29 +00:00
sommerfeld
c1ecf66965
kern/5591: Fix race in the NFS socket code during umount -f and system
...
shutdown:
During an unmount, wake up all the processes which are waiting to lock
the socket for receive, and wait for them (and the process blocked in
soreceive, if any) to go away before blowing away the socket and the
mount structure.
1999-07-04 19:56:00 +00:00
wrstuden
6e06666498
Add fhopen, fhstat, fhstatfs syscalls. Also move getfh in from the nfs
...
syscall code.
1999-06-29 22:18:47 +00:00
fvdl
5958c68bc5
Be more correct with attribute structures for setattr RPCs and friends,
...
so that picky servers (e.g. Solaris 7) don't refuse our requests. Move
some code into a macro, and a bit of KNF. From OpenBSD.
1999-05-29 01:22:03 +00:00
drochner
16f2b4c6a9
-print diskless boot related IP addresses in dot notation
...
-arrange gateway code to fall back to the old method if the new "getfile"
is not answered (and both are enabled -- allow to switch off the new
method for symmetry)
-handle error if setting the netmask fails
1999-05-07 15:17:26 +00:00
drochner
41b78a54f1
print diskless boot related IP addresses in dot notation
1999-05-07 15:10:03 +00:00
thorpej
e3669c3393
Add "use counting" to file entries. When closing a file, and it's reference
...
count is 0, wait for use count to drain before finishing the close.
This is necessary in order for multiple processes to safely share file
descriptor tables.
1999-05-05 20:01:01 +00:00
sommerfe
6f883a0b1c
Include checks (under DIAGNOSTIC) to catch vnode lock leaks soon after
...
they happen (while we still know which remote op is to blame for it),
instead of later when we trip over the already-locked vnode.
1999-05-04 16:08:02 +00:00
sommerfe
623d43160b
Fix vnode lock leak in nfsrv_mknod() if to-be-created vnode already existed.
1999-05-04 16:01:37 +00:00
ross
4634c0e3d4
libkern just got an inet_addr(), but it won't compile, no prototype. Cleanup...
...
* Add prototype to libkern.h.
* Remove the almost-identical-copy from libsa/net.[ch].
* Change its type back to the (wrong, but harmless) historical one. (u_long)
* Kill the XXX local prototype in nfs_bootparam.c
1999-04-12 01:05:01 +00:00
gwr
2c54ffdf02
Enable the code that gets our gateway+netmask from the
...
bootparam server using the "gateway" pseudo file.
(Compatible with sys/lib/libsa/dev_net.c)
1999-04-11 22:15:25 +00:00
mycroft
afa07de60d
Fix two problems with NFSV3CREATE_GUARDED:
...
* We shouldn't truncate the file.
* We were leaving the vnode locked (unless the truncate happened to fail).
Solaris clients may cause this under some conditions.
Problem reported by chopps, analysis and fix by me.
1999-03-30 12:01:18 +00:00
sommerfe
e94a23c0ef
Fix crash reported in PR7116 on shutdown
1999-03-25 04:07:33 +00:00
mrg
d2397ac5f7
completely remove Mach VM support. all that is left is the all the
...
header files as UVM still uses (most of) these.
1999-03-24 05:50:49 +00:00
kleink
9ee75a4fcc
Add _PC_FILESIZEBITS to pathconf vnop.
1999-03-22 19:21:07 +00:00
fvdl
84c33581df
..JUKEBOX can happen on writes too.
1999-03-16 23:24:28 +00:00
fvdl
df3c103b26
The JUKEBOX error may be returned by the read operation, so don't
...
filter it out.
1999-03-16 23:22:57 +00:00
fair
d143754986
Snatch a patch from OpenBSD to fix PRs 6529 and 7074.
...
Adjust fxdr_hyper() and txdr_hyper() macros.
1999-03-06 05:34:40 +00:00