summaryrefslogtreecommitdiff
path: root/sys/nfs/nfs_vfsops.c
AgeCommit message (Collapse)Author
2009-10-19antsyJonathan Gray
no binary change apart from nfsm_reqhead() which is clearly correct. ok thib@
2009-09-02Backout the asyncio/aiod change, as it causes buf's to get hung.Thordur I. Bjornsson
problem noticed by deraadt@ ok beck@
2009-08-25move to having requests on a per nfsmount tailq instead of one global one.Thordur I. Bjornsson
also make the rexmit timeout per nfsmount, and make sure to start/stop the timer appropriately. now the nfs_timer() only fires if there is work todo, not always at nfs_ticks (it did, even if there where no nfsmounts in the system!). OK blambert@
2009-08-20Rework the way we do async I/O in nfs. Introduce separate buf queues forThordur I. Bjornsson
each mount, and when work is "found", peg an aiod to that mount todo the I/O. Make nfs_asyncio() a bit smarter when deciding when to do asyncio and when to force it sync, this is done by keeping the aiod's one two lists, an "idle" and an "all" list, so asyncio is only done when there are aiods hanging around todo it for us or are already pegged to the mount. Idea liked by at least beck@ (and I think art@). Extensive testing done by myself and jasper and a few others on various arch's. Ideas/Code from Net/Free. OK blambert@.
2009-08-13Teach nfsm_fhtom about nfsm_info structsBret Lambert
ok thib@
2009-08-10Use an RB tree instead of a hashtable for fh/node lookups.Thordur I. Bjornsson
Idea from NetBSD. OK blambert@
2009-08-04group all of the on-stack variables that are uses by the nfsm_macrosThordur I. Bjornsson
to keep the data munging "state" into an nfsm_info structure. Each function now has this structure on its stack, and it and its members are now passed around so that the macros/functions can work there magic. this will make removing the nfsm_* macros way easier. Idea/code picked up from DragonflyBSD. Tested by krw@, jacekm@ and myself. OK blambert@.
2009-07-20(struct foo *)0 -> NULL, every where I could find it.Thordur I. Bjornsson
OK blambert@
2009-07-13Make the callers of nfs_request() responsible for freeing the reply mbuf,Thordur I. Bjornsson
if the reply is an error and retire the NFS_RETERR hack. For NFSv3 mounts the flag was set and reply mbuf not freed to allow the callers to handle the post-op attributes, or just free the mbuf for NFSv2. Tested by myself and jasper@ on various arch's. OK blambert@.
2009-06-04Demacro nfsm_lookup for great justice.Bret Lambert
Thanks to ckuethe for saving much typing with a drive-by perl script. ok thib@
2009-06-02give the retransmission count booking keeping a facelift,Thordur I. Bjornsson
just store the maximun amount of rexmits in one place and cleanup. Also make sure this only effects soft mounts. OK blambert@
2009-04-13Convert macros to functions to reduce kernel memory usage.Bret Lambert
In snaps for a while (way too long, according to deraadt@)
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-07-28dont stuff nfs mount point flags into the statfs f_flags member, itsThordur I. Bjornsson
wrong. But this was harmless anyway since sys_statfs() sets this field corrently after calling VFS_STATFS(); ok pedro@, blambert@
2008-07-10nuke two bogus ARGSUSEDThordur I. Bjornsson
2008-07-05Clean up some old dead code, mostly nqnfs and kerberos leftoversThordur I. Bjornsson
for uid goo, mostly zapping unused members from various structures. ok blambert@
2008-06-14Replace nfsm_build/bcopy with nfsm_{buf,str}tombuf functions inBret Lambert
filehandle -> mbuf write macros. Removes `magic' variable cp which was used only in these macros, and should lead to marginally better mbuf packing as well. `slap it in' thib@
2008-06-13Kill one-liner macro which obfuscated mbuf pointer assignment.Bret Lambert
Rescue nfsm_reqhead macro name and rename nfsm_reqh. End of one-liners from nfsm_subs.h. 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-04-25Plug potential mbuf leak by changing m_free to m_freem.Bret Lambert
From NetBSD. ok thib@
2008-04-14Rework NFS mbuf write routines:Bret Lambert
nfsm_uiotombuf(): - no meaningful return, function becomes void - replace frankensteined uiomove/MGET with actual call to uiomove nfsm_strtmbuf(): - no meaningful return, becomes void - rename and reorder parameters to be consistent with other functions - becomes wrapper to nfsm_uiotombuf nfsm_buftombuf(): - new function; unused but slated for future use - wrapper to nfsm_uiotombuf As a bonus, making these functions void removes much unneeded code and garbage collects `magic' variable t2 which was only used (invisibly) by the macros from nfsm_subs.h Preps the way for removing much more NFS goo... testing by myself, thib@ and merdely@ ok thib@
2008-03-16Widen some struct statfs fields to support large filesystem stataOtto Moerbeek
and add some to be able to support statvfs(2). Do the compat dance to provide backward compatibility. ok thib@ miod@
2008-01-06diff missed in previous commit:Theo de Raadt
More NFS-related kernel shrinkage... 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-09-20MALLOC/FREE -> malloc/free + M_ZERO.Thordur I. Bjornsson
Uneeded includes and casts... ok krw@
2007-09-11Replace nfsm_reqdone and nfsm_srvdone macros inline. No binary change.Bret Lambert
ok thib@
2007-06-20READDIRPLUS is v3 only, bail out if the mount isnt a v3.Thordur I. Bjornsson
Prevents weird things from happening. ok tedu@,pedro@
2007-06-13- Remove the nm_inprog member from struct nfsmount;Thordur I. Bjornsson
NQNFS leftover. - Remove setting of the NFSMNT_DISMINPROG flag, its set and unset in the same function servering no purpose, im however going to reuse it shortly. - kill an if thats always true (NFSMNT_KERB cant be set) - misc cleanup and KNF. ok beck@
2007-06-12remove some unused externs;Thordur I. Bjornsson
smallish cleanup (move prototypes and externs togather). ok toby@
2007-04-12remove unused members from struct nfsmount and nfsnode;Thordur I. Bjornsson
ok pedro@
2006-05-29revert vfs.nfs.privport sysctl, broke a few architecturesAnil Madhavapeddy
requested by deraadt@
2006-05-28Add support for NFS mounts to be from non-reserved ports:Anil Madhavapeddy
- new sysctl vfs.nfs.privport to require NFS mount requests to be on reserved ports when set to 1 (the default). - mountd now automatically sets the sysctl depending on the -n flag. - add mountd_flags to rc.conf to enable the -n flag at boot. deraadt@ ok
2006-04-19Remove unused mount list simple_lock() gooPedro Martelletto
2005-12-27Remove unused sw_nblks field of struct swdevt. Then, remove swapconf()Miod Vallat
which duplicates work done by uvm_swap_init().
2005-11-30No need for vfs_busy() and vfs_unbusy() to take a process pointerPedro Martelletto
anymore. Testing by jolan@, thanks.
2005-05-22optimize nfs_sync() a bit, by not iterating over the list of vnodesPedro Martelletto
belonging to a mount point if we want to skip all of them, okay art@ a couple of days ago, commit it deraadt@
2005-03-31re-commit marius commit:Theo de Raadt
> fix preposterous time warnings in the nfs client; caused by false hits > in the attribute cache > based on original fix by pedro@, ok pedro@, tedu@; testing kettenis@ was backed out because too close to release put back in now, since tree is unlocked. unfortunately it appears that even after MANY MAILS ON THIS SUBJECT, NOONE HAS DONE THIS. WTF? Noone wants to FINISH jobs anymore?
2005-02-01backout nfs_subs.c rev1.51 nfs_vfsops.c rev1.54:Peter Valchev
fix preposterous time warnings in the nfs client; caused by false hits in the attribute cache too close to release, save for immediately after unlock
2005-01-24fix preposterous time warnings in the nfs client; caused by false hitsmarius eriksen
in the attribute cache based on original fix by pedro@, ok pedro@, tedu@; testing kettenis@
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@
2004-04-12make sockargs take void *, combine a len check.Ted Unangst
from pedro martelletto, ok markus@
2003-08-14constify vfsops; tedu@ okMichael Shalayeff
2003-06-02Remove the advertising clause in the UCB license which BerkeleyTodd C. Miller
rescinded 22 July 1999. Proofed by myself and Theo.
2002-12-11in mountroot:Michael Shalayeff
check system clock against root atime, not mtime, since the later does not change that often and is a bad mark to sync unto. remove a bogus splnet() i've put way back in 96 w/ v3 integration. miod@ tested on diskless sparc and sparc64, mickey@ on hppa
2002-03-14First round of __P removal in sysTodd C. Miller
2002-02-23Sigh. The diff is out for testing for three months without a single problem.Artur Grabowski
Two days after commit people report serious lockups all over the place. Back out nfs locking changes.
2002-02-22More locking in the NFS codeConstantine Sapuntzakis
2002-02-10theo doesn't like this codeNathan Binkert
2002-01-16use queue.h macro'sEric Jackson
remove register
2002-01-11Add a new sysctl that removes the requirement for reserved ports to beNathan Binkert
used by the nfs server.