Age | Commit message (Collapse) | Author |
|
ok blambert@
|
|
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@
|
|
the accidental situation that used to happen when it leaked buffers and allowed
the syncer to do it, however this puts a limit on how much of the buffer cache
it is allowed to consume to a sensible amount - improves nfs write performance
since we don't have to do tons of them synch now.
Modifies the existing code to use wakeup_one instead of cruft, and now
all nfsiod's tsleep the same way.
ok thib@ art@
|
|
conversions that should shave a few bytes off the kernel.
ok henning, krw, jsing, oga, miod, and thib (``even though i usually prefer
FOO|BAR''; thanks for looking.
|
|
ok blambert@
|
|
rest of NFS code, canonical for() -> LIST_FOREACH() change, minor
readability changes.
ANSIfy function while here.
ok thib@
|
|
ok blambert@
|
|
contents of this file inside #ifdef _KERNEL; there's nothing here that
userland should ever need/touch.
but then again, some userland programs define _KERNEL before they include
kernel header files *shrugh*...
survived a build, OK blambert@
|
|
depends on them being set. This should be the removal of the original
return-to-userland-to-authenticate code that was apparently an unfinished
experiment.
ok thib@
|
|
Rescue nfsm_reqhead macro name and rename nfsm_reqh.
End of one-liners from nfsm_subs.h.
ok thib@
|
|
|
|
ok blambert@
|
|
to support authentication other than AUTH_UNIX will replace this
with a (hopefully) much better system.
ok thib@
|
|
the function it was named after took 4 arguments instead of 2.
"get it in; get it in; get it in" thib@
|
|
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...)
|
|
you need to upgrade nfsstat and the relevant header files
ok beck@
|
|
return (EIO);
return (EIO);
is kinda silly. Don't.
Prettify a bit in the process.
'makes perfect sense' blambert@, ok thib@
|
|
ok thib beck art
|
|
the buf due too all of the nfs iod's being busy; this downgrades
the write to a sync one and allows to handle this.
ok art@, beck@
|
|
file copies to nfsv2 causes the system to eventually peg the console.
On the console ^T indicates that the load is increasing rapidly, ddb
indicates many calls to getbuf, there is some very slow nfs traffic
making none (or extremely slow) progress. Eventually some machines
seize up entirely.
|
|
variable;
ok & feedback deraadt@
|
|
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
|
|
|
|
ok krw@, deraadt@, thib@
earlier commit for some reason did not go through
prodded by nfs buddy
|
|
add a function to handle cache_enter()'s for us since
we need to update the appropriate timestamps so we don't
miss on lookup;
o Do not purge the dvp in nfs_rmdir(), since there's no need;
o cache the new entry created in nfs_mkdir();
o Do caching of the access modes, this drastically reduces the
amount of over the wire access RPCs we do in the NFSv3 case.
This diff was written by Pedro Martelletto, sometime in 2004.
A lot of people have been running with it at one time or another,
this includes at least markus and matthieu.
OK deraadt@, blambert@
|
|
1) remove multiple size queues, introduced as a stopgap.
2) decouple pages containing data from their mappings
3) only keep buffers mapped when they actually have to be mapped
(right now, this is when buffers are B_BUSY)
4) New functions to make a buffer busy, and release the busy flag
(buf_acquire and buf_release)
5) Move high/low water marks and statistics counters into a structure
6) Add a sysctl to retrieve buffer cache statistics
Tested in several variants and beat upon by bob and art for a year. run
accidentally on henning's nfs server for a few months...
ok deraadt@, krw@, art@ - who promises to be around to deal with any fallout
|
|
the superuser. access(2) will now only indicate success for X_OK on
non-directories if there is at least one execute bit set on the file.
OK deraadt@ thib@ otto@
|
|
nfsm_* functions are for mbufs
|
|
near maximal (2^32) cycle times. These are useful for network
IDs in cases where there are negative consequences to ID prediction
and/or reuse.
Use the idgen32() functions to generate IPv6 IDs and NFS client/server
XIDs.
Pseudorandom permutation code in crypto/idgen.c based on public
domain skip32.c from Greg Rose.
feedback & ok thib@ deraadt@
|
|
|
|
handrolled loops with nfsm_strtombuf and nfsm_buftombuf.
ok deraadt@ via thib@; ok 'nfs buddy' thib@
testing johan@, merdely@; thanks
|
|
|
|
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.
|
|
that the code is ifdef-ed out all the time.
|
|
functions and make some comments nicer...
|
|
already been received while we slept. prevents processes from
monopolising the lock.
From FreeBSD;
ok blambert@
tested by johan@ and a few others
|
|
OK henning@
|
|
with eopnotsupp() instead;
ok blambert@
|
|
Parts from NetBSD;
OK blambert@;
tested by johan@, sthen@ and a few others.
|
|
From NetBSD.
ok thib@
|
|
operations (non-idempotent ones) under the assumption that the reply from
the server is for a duplicate of the original request.
However, most (all) NFS server today have a duplicate reply cache that
address this problem and these kludges have been shown to cause problems
with some applications (most notably dovecot as pointed out by brad@).
For more information:
http://lists.freebsd.org/pipermail/freebsd-current/2007-November/079961.html
And revision 1.277 of sys/nfsclient/nfs_vnops.c in FreeBSD.
Diff from rwatson@freebsd.org
OK blambert@, "no objections" krw@
tested by many;
|
|
and m_freem()'ing vice doing so only on the first packet.
From a similar change in NetBSD.
"yes please" thib@
|
|
(the latter only had it to pass it to nfsrv_fhtovp()).
appropriate cleanup also;
ok blambert@
|
|
ok thib@
|
|
len exceeds MLEN, not MINCLSIZE; inspired by a similar
commit from damien.
ok damien@, blambert@
|
|
power of two.
use arc4random_bytes() when requesting more than a word of PRNG
output.
ok deraadt@
|
|
allocate a mbuf cluster only if length is greater than MLEN
instead of MINCLSIZE.
ok blambert@, thib@
|
|
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@
|
|
it twice, makes this nicer as a bonus;
From NetBSD.
tested by johan@, ok blambert@.
|
|
booted from to the most precision; preferring the boot device, or if that
is not known, the root device
discussed with miod and reyk
tested by beck
|