Commit Graph

1139 Commits

Author SHA1 Message Date
cegger a531bda091 correct previous: use %zu for BOOTP_SIZE_(MIN,MAX).
Pointed out by David Holland
2009-05-06 05:34:12 +00:00
cegger 4bbacd3411 buildfix: use %d for BOOTP_SIZE_(MIN,MAX).
Makes i386 ALL kernel build again.
2009-05-05 12:48:31 +00:00
yamt 6f0983460b when freeing cn_pnbuf, make it NULL if DIAGNOSTIC. 2009-05-04 06:05:19 +00:00
yamt fc99505dcc nfs_lookup: handle the case where the vnode returned cache_lookup_raw is
being reclaimed by another thread.  after recent changes in cache_lookup_raw,
there's a race between cache_lookup_raw/vtryget and getcleanvnode/vclean.
PR/41028.
2009-05-04 05:59:35 +00:00
yamt 5f6d027dab nfs_lookup: add an assertion. 2009-05-04 05:50:17 +00:00
yamt ffdcb971f2 nfs_lookup: comments. no functional changes. 2009-05-04 05:49:00 +00:00
manu 20f56b3015 - Silence warning when running with debug enabled
- Remind the administrator about the required DHCP option when some are
  missing, instead of silently failing, you stupid computer!
2009-05-02 21:06:51 +00:00
bouyer 615c2e4e8d PR kern/41154: possible races in NFS server code
Fix some of the races (but probably not all of them) in the NFS server code.
nfssvc_nfsd(): change a splsoftclock()/spx() to mutex_enter/exit(&nfsd_lock)
 (I guess it was forgotten when the nfsd code was made SMP safe)
m_freem(nd_nam) in nfsrv_slpderef() instead of nfsrv_zapsock() to
 avoid possible use after free in nfssvc_nfsd()
Fix nfsrv_slpderef() to not release  nfsd_lock before testing SLP_VALID
 and reaquiring it just after. This could cause a use after free
 of the slp if one thread is in nfsrv_slpderef() and the other one grabs
 slp from nfssvc_sockpending and zap it.
2009-04-10 19:04:14 +00:00
bouyer 2f4b50f71c PR kern/41158: nfs_rename() locking against myself
nfsrv_rename() can exit without calling genfs_renamelock_exit() because
the nfsm_reply() can do return (0) on error.
Change nfsm_reply to use 'error = 0; goto nfsmout' instead.
Fix a few place so it's safe to goto nfsmout from nfsm_reply, or other
macros calling it.
As a side effect it could fix a missing vrele(dirp) in various place where
nfsm_reply could return(0).
2009-04-10 18:58:50 +00:00
cegger b8817e4aed ansify function definitions 2009-03-15 17:14:40 +00:00
dsl 82357f6d42 ANSIfy another 1261 function definitions.
The only ones left in sys are beyond by sed script!
(or in sys/dist or sys/external)
Mostly they have function pointer parameters.
2009-03-14 21:04:01 +00:00
dsl 454af1c0e8 Change about 4500 of the K&R function definitions to ANSI ones.
There are still about 1600 left, but they have ',' or /* ... */
in the actual variable definitions - which my awk script doesn't handle.
There are also many that need () -> (void).
(The script does handle misordered arguments.)
2009-03-14 15:35:58 +00:00
dsl 02cdf4d2c8 Remove all the __P() from sys (excluding sys/dist)
Diff checked with grep and MK1 eyeball.
i386 and amd64 GENERIC and sys still build.
2009-03-14 14:45:51 +00:00
yamt 6f8f12ad37 nfs_lookup: fix a comment. 2009-03-13 15:01:29 +00:00
yamt d32e59ebfc nfs_bioread: don't truncate values in a debug printf. 2009-03-13 15:00:34 +00:00
nisimura e12e37e63e Update comments to reflect realities; the filenames were changed in 1997
and another one was added years ago.
2009-03-04 06:56:25 +00:00
ad 350a5f88e7 PR kern/40491 5.0: nfs timer can crash/break on smp
Hack around it by acquiring softnet_lock around the client-side timer loop.
2009-02-04 20:36:54 +00:00
yamt 812bb0d164 restore the pre socket locking patch signal behaviour.
this fixes a busy-loop in nfs_connect.
2009-01-21 06:59:29 +00:00
mrg f41b56aff5 Actually enforce the maximum timeout (60s by default) rather
than backing off to 256*SRTT.  This is why it sometimes could take
hours for a NFS mount to come back when the server returned.

contributed anonymously.
2009-01-18 09:45:05 +00:00
christos 461a86f9bd merge christos-time_t 2009-01-11 02:45:45 +00:00
christos ed795a66a7 protect sillyrename with _KERNEL 2009-01-02 21:06:11 +00:00
ad 27bc6a2391 - Don't vput() a vnode that we do not hold locked.
- Eliminate one of the few remaining uses of LK_CANRECURSE.
2009-01-02 12:57:29 +00:00
cegger 9b87d582bd kill MALLOC and FREE macros. 2008-12-17 20:51:31 +00:00
pooka 4b18ba9da3 nfsd_use_loan: int -> bool 2008-12-03 14:56:05 +00:00
pooka 0fa0158c37 Use kmem instead of malloc to avoid hassle with dynamically attaching
a malloc type.  Makes nfsserver-as-a-module work.

reported on current-users & tested by Geoff Wing
2008-11-28 07:23:22 +00:00
pooka bd6148602f g/c unused malloc types 2008-11-28 06:47:08 +00:00
pooka 83f531e6a8 Use struct nfs_fattr in struct flrep instead of uint32_t array
acrobatics to get rid of type punning warning.
2008-11-27 14:04:58 +00:00
pooka 1ba9363d08 Comment police. No functional or GENERIC size change. 2008-11-25 14:28:42 +00:00
pooka ad71247a89 When testing if a file system handles file handles (ha ha ha), be
content with just the vp-to-fh-size check.
(removes a very weird error path in the code)
2008-11-25 14:04:23 +00:00
mrg d7d9597105 avoid noisy nfs_timer/nfs_reply DEBUG output that occurs when the
NFS server goes away.  use ratelimit(9) and only print the console
error once every 10 seconds.  PR#31562.
2008-11-23 08:22:07 +00:00
ad 92ce8c6a3d Make the emulations, exec formats, coredump, NFS, and the NFS server
into modules. By and large this commit:

- shuffles header files and ifdefs
- splits code out where necessary to be modular
- adds module glue for each of the components
- adds/replaces hooks for things that can be installed at runtime
2008-11-19 18:35:57 +00:00
ad df8183316d Remove COMPAT ifdefs that might as well be comments (i.e., they cost us
almost nothing).
2008-11-14 13:33:55 +00:00
christos 2a274197af - allocate 8 pointers on the stack to avoid stack overflow in nfs.
- make that 8 a constant
- remove bogus panic
2008-10-31 20:42:41 +00:00
cegger 6b4fb5f4de make this build again without having
NFS_BOOT_BOOTSTATIC, NFS_BOOT_BOOTP, NFS_BOOT_DHCP or NFS_BOOT_BOOTPARAM
defined.

I uncovered this case when compiling rump.
2008-10-27 13:24:01 +00:00
cegger c479884027 change nfs boot behaviour to automatically try next boot method if boot information are incomplete to succeed.
That way, it is possible combine static and dhcp boot:
  For example, to boot diskless you can specify the nfs-server and the rootpath statically. All other information will be taken via dhcp.

Patch has been presented on port-xen, tech-kern and tech-net:
http://mail-index.netbsd.org/port-xen/2008/10/24/msg004488.html
http://mail-index.netbsd.org/tech-kern/2008/10/24/msg003255.html
http://mail-index.netbsd.org/tech-net/2008/10/24/msg000864.html

No comments, no objections.
2008-10-27 10:58:22 +00:00
cegger cac6895435 - ansify function definition
- de- __P
- u_int32_t -> uint32_t

No functional changes.
2008-10-24 17:17:12 +00:00
matt b55adffee3 Don't need nfs_vfs_reinit anymore since we don't resize tables anymore.
Move reinit code to init case.
2008-10-22 12:29:35 +00:00
matt a42078ef92 Change NFS to use a RB-tree for its FH->nfsnode lookups. 2008-10-22 11:36:06 +00:00
christos 02934a6249 Requested by yamt:
- In getpages don't allocate if we are not locked
- Use kmem_alloc instead of malloc and don't sleep

Also provide a 64 entry stack array so we don't have to allocate in the
common case.
2008-10-17 14:24:43 +00:00
dogcow cff6728f44 it appears the previous commit's sacrifice was "successful compilation with
NFS_V2_ONLY defined".
2008-10-17 06:40:21 +00:00
christos a7242b8e23 Another sacrifice to the stack protector gods. 2008-10-16 22:04:22 +00:00
christos 96d7a83037 don't use variable allocation on the stack. 2008-10-16 19:33:48 +00:00
pooka c66ebd3d57 For NFSV3CREATE_EXCLUSIVE verifier, just use arc4random() instead
of the first inet address on INET systems (which is likely to be
localhost).
2008-10-15 14:21:35 +00:00
christos ff1eb234c1 do the proper ifdef dance for non-inet families 2008-10-09 14:38:21 +00:00
pooka ae509fabab Use atomic op to get next xid. Initialize value with arc4random()
at nfs init time instead system time based trickery intermingled
with the runtime code.

le bouef: kills last simple_lock from nfs
2008-10-09 00:11:39 +00:00
pooka d9f75a894c nuke outdated comment 2008-10-07 01:20:37 +00:00
pooka f4da52c698 Since the nfs root vnode is eternally constant, fully initialize
it in mountfs instead of deferring part of the initialization to
VFS_ROOT().  Fixes theoretical future bugs for nfs roots.
2008-09-30 21:12:48 +00:00
pooka c7637a677e Initialize nfsnode pools and malloc type dynamically in the
constructor instead of depending on link sets.  Consequently, rename
nfs_nh{init,reinit,done} to nfs_node_{init,reinit,done}, respectively,
to better convey the function.
2008-09-30 14:29:39 +00:00
pooka 7f617ba79e Apply #ifdef modern art to make NFSSERVER-without-NFS possible. 2008-09-30 14:25:15 +00:00
pooka b334ad7b43 Don't free nd_mrep in case of no reply. It is (at least in one
case) freed already within the rpc handler.

XXX: this line and another was originally committed with "don't
leak mbufs", but given that currently it can double-free an mbuf
and essentially crash the system, I'll opt for the leak.  Needless
to say, this needs revisiting, but that requires a large scale
campaign due to the sticky nature of nfsm love.
2008-09-28 00:10:18 +00:00