#
a7500bce |
| 15-Dec-2004 |
Paul Saab <ps@FreeBSD.org> |
First cut of NFS direct IO support. - NFS direct IO completely bypasses the buffer and page caches. If a file is open for direct IO all caching is disabled. - Direct IO for Directories will be addr
First cut of NFS direct IO support. - NFS direct IO completely bypasses the buffer and page caches. If a file is open for direct IO all caching is disabled. - Direct IO for Directories will be addressed later. - 2 new NFS directio related sysctls are added. One is a knob to disable NFS direct IO completely (direct IO is enabled by default). The other is to disallow mmaped IO on a file that has at least one O_DIRECT open (see the comment in nfs_vnops.c for more details). The default is to allow mmaps on a file that has O_DIRECT opens.
Submitted by: Mohan Srinivasan mohans at yahoo-inc dot com Obtained from: Yahoo!
show more ...
|
#
35ec46b7 |
| 06-Dec-2004 |
Paul Saab <ps@FreeBSD.org> |
Rewrite of the NFS client's reply handling. We now have NFS socket upcalls which do RPC header parsing and match up the reply with the request. NFS calls now sleep on the nfsreq structure. This enabl
Rewrite of the NFS client's reply handling. We now have NFS socket upcalls which do RPC header parsing and match up the reply with the request. NFS calls now sleep on the nfsreq structure. This enables us to eliminate the NFS recvlock.
Submitted by: Mohan Srinivasan mohans at yahoo-inc dot com
show more ...
|
#
0fe6462a |
| 06-Dec-2004 |
Robert Watson <rwatson@FreeBSD.org> |
Correct a typo in a comment.
|
#
8b431c95 |
| 06-Dec-2004 |
Poul-Henning Kamp <phk@FreeBSD.org> |
For reasons unknown, the nfs locking code used a fifo to send requests to userland and a dedicated system call to get replies.
The vnode-bypass of fifos broke this into a panic.
Ditch all the magic
For reasons unknown, the nfs locking code used a fifo to send requests to userland and a dedicated system call to get replies.
The vnode-bypass of fifos broke this into a panic.
Ditch all the magic and create a device /dev/nfslock instead, and use that for both directions apart from the shorter path, this is also faster because the device driver runs Giant free using the vnode bypass.
Noticed by: marcel
show more ...
|
Revision tags: release/5.3.0_cvs, release/5.3.0 |
|
#
9f2b7bc4 |
| 27-Sep-2004 |
Poul-Henning Kamp <phk@FreeBSD.org> |
style consistency.
|
#
35f13408 |
| 07-Sep-2004 |
Poul-Henning Kamp <phk@FreeBSD.org> |
Explicitly pass vnode to nfs_doio() and mountpoint to nfs_asyncio().
|
#
c713aaae |
| 06-Jul-2004 |
Alfred Perlstein <alfred@FreeBSD.org> |
NFS mobility PHASE I, II & III (phase VI, and V pending):
Rebind the client socket when we experience a timeout. This fixes the case where our IP changes for some reason.
Signal a VFS event when N
NFS mobility PHASE I, II & III (phase VI, and V pending):
Rebind the client socket when we experience a timeout. This fixes the case where our IP changes for some reason.
Signal a VFS event when NFS transitions from up to down and vice versa.
Add a placeholder vfs_sysctl where we will put status reporting shortly.
Also: Make down NFS mounts return EIO instead of EINTR when there is a soft timeout or force unmount in progress.
show more ...
|
Revision tags: release/4.10.0_cvs, release/4.10.0 |
|
#
1630ff08 |
| 11-Apr-2004 |
Peter Edwards <peadar@FreeBSD.org> |
Clean up properly when unloading NFS client module.
This includes a modified form of some code from Thomas Moestl (tmm@) to properly clean up the UMA zone and the "nfsnodehashtbl" hash table.
Revie
Clean up properly when unloading NFS client module.
This includes a modified form of some code from Thomas Moestl (tmm@) to properly clean up the UMA zone and the "nfsnodehashtbl" hash table.
Reviewed By: iedowse PR: 16299
show more ...
|
#
2fcbca0d |
| 07-Apr-2004 |
Warner Losh <imp@FreeBSD.org> |
Remove advertising clause from University of California Regent's license, per letter dated July 22, 1999 and email from Peter Wemm, Alan Cox and Robert Watson.
Approved by: core, peter, alc, rwatson
|
#
f9955a5f |
| 25-Mar-2004 |
Jim Rees <rees@FreeBSD.org> |
only do nfs rpc callouts if there is work to do.
Submitted by: kan Approved by: alfred
|
#
6df06172 |
| 14-Mar-2004 |
Peter Wemm <peter@FreeBSD.org> |
Calculate NFS timeouts in units of 10ms, not 5ms. This matches the default clock precision on i386. This is a NOP change on i386. But this stops the mount_nfs units from suddenly changing to units
Calculate NFS timeouts in units of 10ms, not 5ms. This matches the default clock precision on i386. This is a NOP change on i386. But this stops the mount_nfs units from suddenly changing to units of 1/20 of a second (vs the normal 1/10 of a second) if HZ is increased.
show more ...
|
#
73c02c41 |
| 27-Feb-2004 |
Jim Rees <rees@FreeBSD.org> |
NFSv4 fixes from Connectathon 2004:
remove unused pid field of file context struct map nfs4 error codes to errnos eliminate redundant code from nfs4_request use zero stateid on setattr that doesn't
NFSv4 fixes from Connectathon 2004:
remove unused pid field of file context struct map nfs4 error codes to errnos eliminate redundant code from nfs4_request use zero stateid on setattr that doesn't set file size use same clientid on all mounts until reboot invalidate dirty bufs in nfs4_close, to play it safe open file for writing if truncating and it's not already open
Approved by: alfred
show more ...
|
Revision tags: release/5.2.1_cvs, release/5.2.1, release/5.2.0_cvs, release/5.2.0 |
|
#
90abe7f2 |
| 22-Nov-2003 |
Alfred Perlstein <alfred@FreeBSD.org> |
Use function pointers to remove the depenancy cross dependancy on nfs4 and the nfs3 client. Also fix some bugs that happen to be causing crashes in both v3 and v4 introduced by the v4 import.
Submi
Use function pointers to remove the depenancy cross dependancy on nfs4 and the nfs3 client. Also fix some bugs that happen to be causing crashes in both v3 and v4 introduced by the v4 import.
Submitted by: Jim Rees <rees@umich.edu> Approved by: re
show more ...
|
#
42233ecd |
| 15-Nov-2003 |
Alfred Perlstein <alfred@FreeBSD.org> |
Move the declaration for "struct nfs4_fctx" out from under #ifdef KERNEL for fstat(1).
|
#
1bf87204 |
| 14-Nov-2003 |
Alfred Perlstein <alfred@FreeBSD.org> |
University of Michigan's Citi NFSv4 kernel client code.
Submitted by: Jim Rees <rees@umich.edu>
|
Revision tags: release/4.9.0_cvs, release/4.9.0, release/5.1.0_cvs, release/5.1.0, release/4.8.0_cvs, release/4.8.0, release/5.0.0_cvs, release/5.0.0 |
|
#
0c183c5a |
| 20-Oct-2002 |
Poul-Henning Kamp <phk@FreeBSD.org> |
Remove extern declarations of stuff which is static in nfs_node.c Move related macro to nfs_node.c
Spotted by: FlexeLint
|
Revision tags: release/4.7.0_cvs |
|
#
6af7f1e5 |
| 05-Sep-2002 |
Bruce Evans <bde@FreeBSD.org> |
Use `struct uma_zone *' instead of uma_zone_t, so that <sys/uma.h> isn't a prerequisite.
|
Revision tags: release/4.6.2_cvs, release/4.6.2 |
|
#
9bf1a756 |
| 13-Aug-2002 |
Poul-Henning Kamp <phk@FreeBSD.org> |
Introduce typedefs for the member functions of struct vfsops and employ these in the main filesystems. This does not change the resulting code but makes the source a little bit more grepable.
Spons
Introduce typedefs for the member functions of struct vfsops and employ these in the main filesystems. This does not change the resulting code but makes the source a little bit more grepable.
Sponsored by: DARPA and NAI Labs.
show more ...
|
Revision tags: release/4.6.1, release/4.6.0_cvs |
|
#
56e9ce41 |
| 28-Jun-2002 |
John Baldwin <jhb@FreeBSD.org> |
In namei(), we use a NULL thread for uio_td when doing a VOP_READLINK(). nfs_readlink() calls nfs_bioread() which passes in uio_td as the thread argument to nfs_getcacheblk(). In nfs_getcacheblk() w
In namei(), we use a NULL thread for uio_td when doing a VOP_READLINK(). nfs_readlink() calls nfs_bioread() which passes in uio_td as the thread argument to nfs_getcacheblk(). In nfs_getcacheblk() we dereference the thread pointer to get a process pointer to pass to nfs_sigintr(). This obviously results in a panic. :)
Rather than change nfs_getcacheblk() to check if the thread pointer is NULL when calling nfs_sigintr() like other callers do, change nfs_sigintr() to take a thread as the last argument instead of a process so none of the callers have to care if the thread is NULL or not.
show more ...
|
#
ab426dc8 |
| 20-Mar-2002 |
Jeff Roberson <jeff@FreeBSD.org> |
Remove references to vm_zone.h and switch over to the new uma API.
|
Revision tags: release/4.5.0_cvs, release/4.4.0_cvs |
|
#
1bde5686 |
| 15-Jan-2002 |
Peter Wemm <peter@FreeBSD.org> |
Revise the nfsiod auto tuning code. Now both the upper and lower limits are specifyable by sysctl and are respected.
Submitted by: Maxime Henrion <mux@sneakerz.org>
|
#
117f6137 |
| 14-Jan-2002 |
Peter Wemm <peter@FreeBSD.org> |
Implement vfs.nfs.iodmin (minimum number of nfsiod's) and vfs.nfs.iodmaxidle (idle time before nfsiod's exit). Make it adaptive so that we create nfsiod's on demand and they go away after not being
Implement vfs.nfs.iodmin (minimum number of nfsiod's) and vfs.nfs.iodmaxidle (idle time before nfsiod's exit). Make it adaptive so that we create nfsiod's on demand and they go away after not being used for a while. The upper limit is NFS_MAXASYNCDAEMON (currently 20). More will be done here, but this is a useful checkpoint.
Submitted by: Maxime Henrion <mux@qualys.com>
show more ...
|
#
1278d57a |
| 02-Jan-2002 |
Ian Dowse <iedowse@FreeBSD.org> |
Permit NFS filesystems to be forcibly unmounted when the server is down, even if there are hung processes and the mount is non- interruptible.
This works by having nfs_unmount call a new function nf
Permit NFS filesystems to be forcibly unmounted when the server is down, even if there are hung processes and the mount is non- interruptible.
This works by having nfs_unmount call a new function nfs_nmcancelreqs() in the FORCECLOSE case. It scans the list of outstanding requests and marks as interrupted any requests belonging to the specified mount. Then it waits up to 30 seconds for all requests to terminate. A few other changes are necessary to support this: - Unconditionally set a socket timeout so that even hard mounts are guaranteed to occasionally check the R_SOFTTERM flag on requests. For hard mounts this flag can only be set by nfs_nmcancelreqs(). - Reject requests on a mount that is currently being unmounted. - Never grant the receive lock to a request that has been cancelled.
This should also avoid an old problem where a forced NFS unmount could cause a crash; it occurred when a VOP on an unlocked vnode (usually VOP_GETATTR) was in progress at the time of the forced unmount.
show more ...
|
#
14783939 |
| 31-Dec-2001 |
Robert Watson <rwatson@FreeBSD.org> |
o Pass td into nfs_mountroot() to eliminate an XXX'd curthread use. Since it's in the parent function anyway, might as well pass it another layer down.
Obtained from: TrustedBSD Project
|
#
3ebeaf59 |
| 14-Dec-2001 |
Matthew Dillon <dillon@FreeBSD.org> |
This fixes a large number of bugs in our NFS client side code. A recent commit by Kirk also fixed a softupdates bug that could easily be triggered by server side NFS.
* An edge case with shared R+
This fixes a large number of bugs in our NFS client side code. A recent commit by Kirk also fixed a softupdates bug that could easily be triggered by server side NFS.
* An edge case with shared R+W mmap()'s and truncate whereby the system would inappropriately clear the dirty bits on still-dirty data. (applicable to all filesystems)
THIS FIX TEMPORARILY DISABLED PENDING FURTHER TESTING. see vm/vm_page.c line 1641
* The straddle case for VM pages and buffer cache buffers when truncating. (applicable to NFS client side)
* Possible SMP database corruption due to vm_pager_unmap_page() not clearing the TLB for the other cpu's. (applicable to NFS client side but could effect all filesystems). Note: not considered serious since the corruption occurs beyond the file EOF.
* When flusing a dirty buffer due to B_CACHE getting cleared, we were accidently setting B_CACHE again (that is, bwrite() sets B_CACHE), when we really want it to stay clear after the write is complete. This resulted in a corrupt buffer. (applicable to all filesystems but probably only triggered by NFS)
* We have to call vtruncbuf() when ftruncate()ing to remove any buffer cache buffers. This is still tentitive, I may be able to remove it due to the second bug fix. (applicable to NFS client side)
* vnode_pager_setsize() race against nfs_vinvalbuf()... we have to set n_size before calling nfs_vinvalbuf or the NFS code may recursively vnode_pager_setsize() to the original value before the truncate. This is what was causing the user mmap bus faults in the nfs tester program. (applicable to NFS client side)
* Fix to softupdates (see ufs/ffs/ffs_inode.c 1.73, commit made by Kirk).
Testing program written by: Avadis Tevanian, Jr. Testing program supplied by: jkh / Apple (see Dec2001 posting to freebsd-hackers with Subject 'NFS: How to make FreeBS fall on its face in one easy step') MFC after: 1 week
show more ...
|