summaryrefslogtreecommitdiff
path: root/sys/nfs/nfs_socket.c
AgeCommit message (Collapse)Author
2009-02-22fix PR 6082: do not create more fd's than will fit in the message onOtto Moerbeek
the receiving side when passing fd's. ok deraadt@ kettenis@
2009-01-24Use a timespec for the server write deadline and procrastinationThordur I. Bjornsson
timeouts. Rrids us of the ugly cur_sec variable, and some shadows. Also helps with granularity. Diff from blambert@ who asked me to commit this since he's away for some days and we wanted to put this in with the timespec changes in the nfsnode.
2009-01-24magic 8 -> nitems(nfs_backoff)Thordur I. Bjornsson
prompted by David <dunnoseriously _att_ gmail.com>
2009-01-22After the NFS server had sent a reply of size readsize or readdirsize,Alexander Bluhm
the udp receive space got completely filled up. Even if the next packet from the server was a small reply, it got dropped by udp_input(). After a second the client resent the NFS request. Doubling rcvreserve reduces the chance of retransmits by having enough recv space for multiple NFS replies even if there comes a big one. found with pedro@, ok blambert@, thib@, pedro@
2009-01-22The variable nfs_reqq was protected by splsoftnet() only in 3 outAlexander Bluhm
of 5 cases. In the functions nfs_reconnect() and nfs_reply() put the TAILQ_FOREACH over nfs_reqq also inside splsoftnet() protection. found with pedro@, ok blambert@, pedro@, thib@
2009-01-20Start reworking NFS client mbuf handling by creating an interface whichBret Lambert
requires well-formed mbuf chains to work. Existing function name is now a wrapper to this interface. Much, much more work to follow which will build on this. Truly change we can believe in. ok thib@, who would have preferred this in two commits, but I'm impatient :) testing on multiple arches (i386, arm, amd64, and sparc64 at least) by many, thanks to all who did so
2009-01-16turn nfs_msg into void functions, also make it take an nfsreqThordur I. Bjornsson
argument since all of the info we need is there, makes it and the use it a tad bit nicer. ok blambert@
2008-12-24Replace the TRUE/FALSE defines with 1/0 respectively. This doesn'tThordur I. Bjornsson
hurt readability and it was just plain annoying seeing them defined in every other .c file. OK blambert@
2008-10-31Revert last commit; mbuf leaks are not solved by double-freeing mbuf chainsBret Lambert
blambert@-- Real solution is to fix NFS mbuf handling.
2008-10-26Plug mbuf leak in RPC record error case.Bret Lambert
ok thib@
2008-09-12move the declaration of nfsrv3_procs to nfs_syscalls.cThordur I. Bjornsson
ok blambert@
2008-07-10nuke two bogus ARGSUSEDThordur I. Bjornsson
2008-07-05When waking an nfs daemon, use wakeup_one vice wakeup, asBret Lambert
a) we're attempting to wake a specific process which b) sleeps on a unique address which means that there's no need to continue traversing the sleep queue once the process has been found and awakened. "looks good too me" thib@
2008-07-05Remove R_GETONEREP and the code that checks if its setThordur I. Bjornsson
(its never set). "please kill it" blambert@
2008-06-14Replace magic '2' and '3' with defines for nfs version numbersThordur I. Bjornsson
ok blambert@
2008-06-14Clean up nfsrv_wakenfsd(); variable name change to be in line with theBret Lambert
rest of NFS code, canonical for() -> LIST_FOREACH() change, minor readability changes. ANSIfy function while here. ok thib@
2008-06-13Remove dead-end and never-used kerberos code in nfs. Future workBret Lambert
to support authentication other than AUTH_UNIX will replace this with a (hopefully) much better system. ok thib@
2008-06-12Remove now-vestigial bpos pointer from NFS. For building outgoingBret Lambert
NFS mbufs, mbufs now contain all their internal buffer state internally, the way god intended. ok thib@ testing johan@ (and possibly merdely@; this diff's been around for a bit...)
2008-06-11Canonical for() -> queue.h FOREACH macro conversions.Bret Lambert
Also, it is historical practice to #include <sys/queue.h> when using queue.h macros. ok thib@ krw@ special thanks to krw@ for reminders vice violence
2008-05-23Deal with the situation when TCP nfs mounts timeout and processesThordur I. Bjornsson
get hung in nfs_reconnect() because they do not have the proper privilages to bind to a socket, by adding a struct proc * argument to sobind() (and the *_usrreq() routines, and finally in{6}_pcbbind) and do the sobind() with proc0 in nfs_connect. OK markus@, blambert@. "go ahead" deraadt@. Fixes an issue reported by bernd@ (Tested by bernd@). Fixes PR5135 too.
2008-05-13don't grab the receive lock in nfs_rcvlock if the reply hasThordur I. Bjornsson
already been received while we slept. prevents processes from monopolising the lock. From FreeBSD; ok blambert@ tested by johan@ and a few others
2008-01-06More NFS-related kernel shrinkage...Bret Lambert
When you use a macro ~200 times, it tends to bloat your code, so make a function out of it. Shaves ~8.5 kB from my kernel. ok thib@, "looks good" krw@ In snaps for 1+ week with no negative reports.
2007-12-28nfs_sndlock() is often called with its rep argumentThordur I. Bjornsson
as NULL, so make sure its non-NULL before attempting to reference it. Fixes PR5694; Confirmed by submitter. OK art@, krw@
2007-10-28Remove the "frev" argument from nfs_rephead(); and clean up the "frev"Thordur I. Bjornsson
variables, that are declared all over, since they are passed via macros to nfs_rephead(); which doesn't do anything with it. OK krw@
2007-10-17use TAILQ_FOREACH() where applicable in nfs_timer();Thordur I. Bjornsson
ok art@, blambert@
2007-10-15Remove a set, but unused varible in nfs_socket();Thordur I. Bjornsson
NQNFS leftover. ok miod@,blambert@
2007-10-13Remove alot of dead kerberos code (add sane comments too).Thordur I. Bjornsson
Cleanup and partly redo the way we create the RPC header, by having nfsm_rpchead() do a bit more work. Right now this is pretty RPCAUTH_UNIX centric, but since it is the only auth method we support right now thats fine. Make sure we can never generate a zero xid, thats forbidden by the RFC. Misc cleanup. tested by a few.
2007-09-20Don't rely on mbuf.h including pool.h (which is going to stop soon)Bret Lambert
ok thib@ henning@ art@
2007-09-20MALLOC/FREE -> malloc/free + M_ZERO.Thordur I. Bjornsson
Uneeded includes and casts... ok krw@
2007-06-25replace magic number with a define.Thordur I. Bjornsson
(2 -> SHUT_RDWR in calls to soshutdown()). From Iruata Souza. ok deraadt@
2007-05-31when getting ESTALE from the server, allow the client to retry in theThordur I. Bjornsson
nfsv2 client case, this matches v3 behaviour to that extent. This is to work around the fact that when the namecache is large, we dont purge vnodes correctly out of it. ok beck@,pedro@
2007-04-24Dont log() send failures in nfs_send(), they arent helpful since we retryThordur I. Bjornsson
and recover for the client case (or terminate with EINTR if to many retries), and in the server case, if we cant send due to f.x network troubles its up to the client to retry not the server. (server not responding messages are logged in another place though). discussed with deraadt@
2006-10-28Dont initialize the nm_srtt and nm_sdrtt arraysThordur I. Bjornsson
out of bounds. ok pedro@
2006-09-20Fix the way delays between request retransmissions are calculatedThordur I. Bjornsson
in the case where NFSERR_TRYLATER is received from the server. Adapted from NetBSD. ok pedro@, tedu@
2006-08-04Fix up mbuf length and do 64-bit alignment where needed, joint workPedro Martelletto
with Nicholas Marriott <nicm__@ntlworld.com>, closes PR 5036
2006-01-24Fix NULL dereference on error condition in nfs_reply(). nmp->nm_so canAaron Campbell
become NULL if the nfs_reply() -> nfs_receive() -> nfs_reconnect() datapath fails. pedro@ ok "I think this is a good fix"
2005-04-02use pool for struct nfsreq; tedu@ pedro@ ok and testing by mark patruck ↵Michael Shalayeff
<mark@2ls4agd.net> on several archs
2004-12-26Use list and queue macros where applicable to make the code easier to read;Miod Vallat
no change in compiler assembly output.
2004-12-10In nfs_connect() move the setting of so->so_rcv.sb_timeo out of theTodd C. Miller
if () else since it is common to both cases and makes the code clearer. OK pedro@
2004-07-14on nfs_reconnect(), don't reset the rexmit of all nfs reqs, but onlyPedro Martelletto
of those belonging to the given nfs mount. ok marius@, tedu@
2004-07-10fix for where a TCP NFS connection could sleep in soreceive() forever,marius eriksen
this fixes some problems people have experienced with NFS mounts freezing on NFS server reboot/crash. ok deraadt@ pedro@ tholo@
2004-06-24This moves access to wall and uptime variables in MI code,Thorsten Lockert
encapsulating all such access into wall-defined functions that makes sure locking is done as needed. It also cleans up some uses of wall time vs. uptime some places, but there is sure to be more of these needed as well, particularily in MD code. Also, many current calls to microtime() should probably be changed to getmicrotime(), or to the {,get}microuptime() versions. ok art@ deraadt@ aaron@ matthieu@ beck@ sturm@ millert@ others "Oh, that is not your problem!" from miod@
2004-06-21First step towards more sane time handling in the kernel -- this changesThorsten Lockert
things such that code that only need a second-resolution uptime or wall time, and used to get that from time.tv_secs or mono_time.tv_secs now get this from separate time_t globals time_second and time_uptime. ok art@ niklas@ nordin@
2003-12-08nfs_reqq is operated at softnet other places and thus softclock is not high ↵Michael Shalayeff
enough; tedu@ ok
2003-07-10unlock on error condition. from Tim Wiess. ok csapuntz@ millert@Ted Unangst
2003-06-02Remove the advertising clause in the UCB license which BerkeleyTodd C. Miller
rescinded 22 July 1999. Proofed by myself and Theo.
2002-10-29Get rid of some commons.Artur Grabowski
2002-08-01Fix handling of 0-length RPC fragmentsConstantine Sapuntzakis
2002-07-30Bug/type found by teduConstantine Sapuntzakis
2002-07-03Remove unused function parameter 'cache' from nfs_repheadNathan Binkert
ok costa@