Age | Commit message (Collapse) | Author |
|
ok beck guenther
|
|
of per-rthread. Handling of per-thread tick and runtime counters
inspired by how FreeBSD does it.
ok kettenis@
|
|
ok md5 "can't be worse" thib@
|
|
case.
ok guenther@ thib@
|
|
down curproc instead of the struct proc from the I/O request...which
may gone away behind our back. Assert that the supplied request
*is* curproc in a couple other places.
Reproduction and testing by sthen@
ok deraadt@, beck@, art@
|
|
|
|
and return EOPNOTSUPP directly from the VOP_* functions.
Filesystems should, at some point fill in every function
in the vop_default struct so we can get rid of the 'if'
statements in VOP_*.
|
|
unrelated, and his alpha is much happier now.
OK deraadt@
|
|
have been resolved.
|
|
vector setup that has questionable features (that have, as far as I can
tell never been used in practice, atleast not in OpenBSD), remove all
the gunk and favor a simple struct full of function pointers that get
set directly by each of the filesystems.
Removes gobs of ugly code and makes things simpler by a magnitude.
The only downside of this is that we loose the vnoperate feature so
the spec/fifo operations of the filesystems need to be kept in sync
with specfs and fifofs, this is no big deal as the API it self is pretty
static.
Many thanks to armani@ who pulled an earlier version of this diff to
current after c2k10 and Gabriel Kihlman on tech@ for testing.
Liked by many. "come on, find your balls" deraadt@.
|
|
sync a few comments to reality (or remove them), remove the cn_hash member
from struct componentname, spacing.
ok beck@
|
|
the nfs_bufq is full - instead tsleep waiting for one of our nfsiod's
to free up space for us in the queue so we can enqueue on the end.
ok blambert@, tedu@, oga@
|
|
Feedback from miod@ and kettenis@.
ok beck@
|
|
picking a name meant that more than 58 sillys in a directory and we fail
with EINVAL, resulting in strange problems for nfs which in turn causes
pain and stress in building, and PTSD in nfs and vfs hackers. Has bit us
in the butt since the vienna f2k7 hackathon.
good suggestions from deraadt@ guenther@ and otto@
ok deraadt@,oga@,blambert@,krw@,guenther@, and a "very special ok" tedu@
Oh god, I'm an nfs hacker..
|
|
a directory gets reclaimed on a forced unmount before the silly file
in it gets blown away... fixes an issue seen by phessler@
ok oga@, art@
|
|
no binary change apart from nfsm_reqhead() which is clearly correct.
ok thib@
|
|
problem noticed by deraadt@
ok beck@
|
|
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@.
|
|
ok thib@
|
|
prodded by and ok thib@
agreed by art@ and blambert@
|
|
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@.
|
|
OK blambert@
|
|
- Make sure to set the mbuf pointers and the dpos pointer correctly
in nfs_request() before returning an error.
- Fix potential mbufs leaks in nfs_{read,write}rpc for v2. The reply
mbuf was not being freed before the jump to nfsmout.
- Reorder error handling to prevent an error case being treated as a
non-error case.
Fixes issues noticed by sthen@ and ajacoutot@. Tested by both of them.
Reviewd by oga@
OK blambert@
|
|
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@.
|
|
which is exactly what the macro does.
Macro's that are nothing more then:
#define FUNCTION(arg) function(arg)
are almost always pointless and should go away.
OK blambert@
Agreed by many.
|
|
where doing bremfree() befure calling buf_acquire().
This is causing us headache pinning down a bug that showed up
when deraadt@ too cvs to current, and will have to be done
anyway as a preperation for backouts.
OK deraadt@
|
|
Just put it in the buf_acquire function.
oga@ ok
|
|
Thanks to ckuethe for saving much typing with a drive-by perl script.
ok thib@
|
|
In snaps for a while (way too long, according to deraadt@)
|
|
(that I applied to a clean tree to commit)
|
|
mtime, gives us better granularity, helps with cache consistency.
Idea lifted from NetBSD.
OK blambert@
|
|
VA_EXCLUSIVE. Handle this in NFS, also in NFS use arc4random()
for the create verifier instead of an uninitialized long and
the address of the first interface (which is likely to be lo0).
Lifted from NetBSD with small tweaks;
"looks good", miod@
OK blambert@
|
|
cache instead of setting n_attrstamp to 0 directly.
Lift the macro name from NetBSD.
prompted by and OK blambert@
|
|
in diagnostic kernels. The typo comes from 4.4BSD-Lite2 via NetBSD.
Found with pedro@, ok pedro@, blambert@, thib@
|
|
ok millert@ tedu@
|
|
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@
|