Age | Commit message (Collapse) | Author |
|
hurt readability and it was just plain annoying seeing them defined
in every other .c file.
OK blambert@
|
|
#define's in nfs_var.h
ok thib@
|
|
shrinks, same thing as UFS does.
ok/pointers pedro@
ok blambert@
|
|
|
|
checks if the mount is actually interrutable, and if not sets it 0.
remove this argument from nfs_vinvalbuf and just do the checking inside
the function.
o give nfs_vinvalbuf() a makeover so it looks nice. (spacing, casts, &c);
o Actually pass PCATCH too tsleep() if the mount it interrutable.
ok art@, blambert@
|
|
nfs_iodwant array became unused. Garbage collect and free up
a few bytes.
ok thib@
|
|
as it was never used because there were 64-bit buffers already allocated
for filehandles in nfsnode structs.
ok thib@
|
|
ok thib@
|
|
|
|
them going negative - this consists of identifying a number of cases of
IO not going through the buffer cache and marking those buffers with
B_RAW - as well as fixing nfs_bio to show pending writes and reads through
the buffer cache via NFS
still has a problem with mishandling the counters I believe in the
async/sync fallback case where counters stay positive which will be
addressed seperately.
ok tedu@ deraadt@
|
|
not just a return value, nfs_lookitup treats it specially when *npp
is not NULL.
- nfs_lookitup - When we match the file handle to the directory
filehandle (lookup on '.'), initialize np so that we don't return
stack garbage to the caller. The function shouldn't ever be
called with '.' at this moment, but that's no reason to not do the
right thing in case future callers use it that way.
blambert@ thib@ ok
|
|
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@
|
|
Rescue nfsm_reqhead macro name and rename nfsm_reqh.
End of one-liners from nfsm_subs.h.
ok thib@
|
|
ok blambert@
|
|
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...)
|
|
ok thib beck art
|
|
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.
|
|
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
|
|
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@
|
|
with eopnotsupp() instead;
ok blambert@
|
|
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;
|
|
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@
|
|
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.
|
|
shaves an insane (~8K) amount from an i386 kernel
ok thib@
|
|
inline in the one place that it's called
ok thib@, weingart@
"I don't see why not" fgsch@
|
|
Uneeded includes and casts...
ok krw@
|
|
ok thib@
|
|
"ap = v" comments in under 8 seconds, so it must be ok. and it compiles
too.
|
|
Basically the usage of daddr_t was to math out arguments to
nfs_getcacheblk, wich calls getblk();
ok deraadt@
|
|
|
|
tends to .nfs silly files lying around during high filesystem activity.
whatever bug it was trying to fix, it made things worse.
|
|
crash when unmounting nfs volumes, okay thib@, krw@ and mickey@
|
|
effectively been a no-op for quite some time now,
without promise for future usage.
ok pedro@
Testing by krw@ (earlier diff)
and Johan Mson Lindman (tybollt@solace.miun.se)
|
|
|
|
Replace the pointer aerobics used to construct the
namecache hash with a more saner approach since the
former could lead to a null deref (PR5305).
Also make sure that the current buf is bigenough
before caching the current entry.
comments&ok pedro@
|
|
to hold all the entries a directory has, we can't signal EOF.
Okay deraadt@ and miod@.
|
|
|
|
|
|
|
|
these into larger ranges wherever possible.
this should speed up NFS writes quite a bit.
ok art@ millert@ pedro@ tedu@
|
|
ok art@ pedro@, "get it in" deraadt@
|
|
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@
|
|
|
|
duplicated from UFS. Closes PR 3757; OK deraadt@
|
|
in the host fs.
|
|
Fixes a panic that can occur when trying to link from a local filesystem
to an nfs-mounted one. Problem pointed out by Jim Rees, fix exists
in Net and Free. OK tedu@ csapuntz@
|
|
now call the poll backend. With this change we implement greater
poll(2) functionality instead of emulating it via the select backend.
Adapted from NetBSD and including some changes from FreeBSD.
Tested by many, deraadt@ OK
|