Age | Commit message (Collapse) | Author |
|
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
|
|
ok miod
|
|
and add some to be able to support statvfs(2). Do the compat dance
to provide backward compatibility. ok thib@ miod@
|
|
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.
|
|
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.
|
|
as NULL, so make sure its non-NULL before attempting
to reference it.
Fixes PR5694; Confirmed by submitter.
OK art@, krw@
|
|
Use the va_blocksize, that is the blocksize of the underlying exported
file system instead of the DIRBLKSIZ constant to size the chunks.
Diff from Enache Adrian <3n4ch3@gmail.com>
Tested by myself and a few others.
|
|
was used as a part of the "old-style directory caching"
that was removed in 2001;
ok beck@, blambert@
|
|
shaves an insane (~8K) amount from an i386 kernel
ok thib@
|
|
make stat(2) return st_blocksize thats a bit closer
to reality.
From NetBSD;
OK art@, beck@, tedu@
|
|
ok thib@ 'emphatic' ok beck@
|
|
and nuke it's definition.
OK krw@, blamers@
|
|
nuke it's definition.
OK krw@, blambert@
|
|
#ifdef goo.
ok krw@, blambert@
|
|
ok beck@, blambert@
"Kill it. Kill it dead." krw@
|