#
98c49725 |
| 30-Jun-2009 |
Doug Rabson <dfr@FreeBSD.org> |
Adjust the internal NFS KPI to avoid the last traces of NFS_LEGACYRPC.
Approved by: re
|
#
b49a2b39 |
| 30-Jun-2009 |
Doug Rabson <dfr@FreeBSD.org> |
Remove the old kernel RPC implementation and the NFS_LEGACYRPC option.
Approved by: re
|
#
2e370a5c |
| 26-May-2009 |
Oleksandr Tymoshenko <gonzo@FreeBSD.org> |
Merge from HEAD
|
#
86ce6a83 |
| 22-May-2009 |
Robert Watson <rwatson@FreeBSD.org> |
Remove the unmaintained University of Michigan NFSv4 client from 8.x prior to 8.0-RELEASE. Rick Macklem's new and more feature-rich NFSv234 client and server are replacing it.
Discussed with: rmack
Remove the unmaintained University of Michigan NFSv4 client from 8.x prior to 8.0-RELEASE. Rick Macklem's new and more feature-rich NFSv234 client and server are replacing it.
Discussed with: rmacklem
show more ...
|
#
dfd233ed |
| 11-May-2009 |
Attilio Rao <attilio@FreeBSD.org> |
Remove the thread argument from the FSD (File-System Dependent) parts of the VFS. Now all the VFS_* functions and relating parts don't want the context as long as it always refers to curthread.
In
Remove the thread argument from the FSD (File-System Dependent) parts of the VFS. Now all the VFS_* functions and relating parts don't want the context as long as it always refers to curthread.
In some points, in particular when dealing with VOPs and functions living in the same namespace (eg. vflush) which still need to be converted, pass curthread explicitly in order to retain the old behaviour. Such loose ends will be fixed ASAP.
While here fix a bug: now, UFS_EXTATTR can be compiled alone without the UFS_EXTATTR_AUTOSTART option.
VFS KPI is heavilly changed by this commit so thirdy parts modules needs to be recompiled. Bump __FreeBSD_version in order to signal such situation.
show more ...
|
Revision tags: release/7.2.0_cvs, release/7.2.0 |
|
#
9c797940 |
| 13-Apr-2009 |
Oleksandr Tymoshenko <gonzo@FreeBSD.org> |
- Merge from HEAD
|
#
34291180 |
| 06-Apr-2009 |
John Baldwin <jhb@FreeBSD.org> |
When a stale file handle is encountered, purge all cached information about an NFS node including the access and attribute caches. Previously the NFS client only purged any name cache entries associ
When a stale file handle is encountered, purge all cached information about an NFS node including the access and attribute caches. Previously the NFS client only purged any name cache entries associated with the file.
PR: kern/123755 Submitted by: Jaakko Heinonen jh of saunalahti fi Reported by: Timo Sirainen tss of iki fi Reviewed by: rwatson, rmacklem MFC after: 1 month
show more ...
|
#
a58158ef |
| 06-Apr-2009 |
John Baldwin <jhb@FreeBSD.org> |
Change the default timeout for caching attributes of a directory in the NFS client from 30 seconds to 3 seconds. After the recent changes to add caching of negative name cache lookups, a negative na
Change the default timeout for caching attributes of a directory in the NFS client from 30 seconds to 3 seconds. After the recent changes to add caching of negative name cache lookups, a negative name cache hit will persist until the client notices the parent directory has changed. The higher the attribute cache timeout on directories, the longer that can take, so lower the default timeout for directories to match that of regular files.
Suggested by: bde, mohans MFC after: 1 month
show more ...
|
#
2a3f3a09 |
| 20-Mar-2009 |
John Baldwin <jhb@FreeBSD.org> |
Expand the per-node access cache to cache permissions for multiple users. The number of entries in the cache defaults to 8 but is easily changed in nfsclient/nfs.h. When the cache is filled, the old
Expand the per-node access cache to cache permissions for multiple users. The number of entries in the cache defaults to 8 but is easily changed in nfsclient/nfs.h. When the cache is filled, the oldest cache entry is evicted when space is needed.
I mirrored the changes to the NFSv[23] client in the NFSv4 client to fix compile breakage. However, the NFSv4 client doesn't actually use the access cache currently.
Submitted by: rmacklem
show more ...
|
Revision tags: release/7.1.0_cvs, release/7.1.0 |
|
#
e57c2b13 |
| 04-Dec-2008 |
Dag-Erling Smørgrav <des@FreeBSD.org> |
integrate from head@185615
|
Revision tags: release/6.4.0_cvs, release/6.4.0 |
|
#
335317d2 |
| 14-Nov-2008 |
Doug Rabson <dfr@FreeBSD.org> |
Switch the default rpc implementation for NFS back to the new code. I believe I have fixed the reported problems - if you still have trouble with it, please contact me with as much detail as possible
Switch the default rpc implementation for NFS back to the new code. I believe I have fixed the reported problems - if you still have trouble with it, please contact me with as much detail as possible so that I can track down any other issues as quickly as possible.
show more ...
|
#
0eec5c87 |
| 13-Nov-2008 |
Doug Rabson <dfr@FreeBSD.org> |
Temporarily switch NFS back to the old RPC code while I try to diagnose and fix the problems a few people have noticed with the new code. People who want to continue testing the new code or who need
Temporarily switch NFS back to the old RPC code while I try to diagnose and fix the problems a few people have noticed with the new code. People who want to continue testing the new code or who need RPCSEC_GSS support should use the new option NFS_NEWRPC to select it.
show more ...
|
#
a9148abd |
| 03-Nov-2008 |
Doug Rabson <dfr@FreeBSD.org> |
Implement support for RPCSEC_GSS authentication to both the NFS client and server. This replaces the RPC implementation of the NFS client and server with the newer RPC implementation originally devel
Implement support for RPCSEC_GSS authentication to both the NFS client and server. This replaces the RPC implementation of the NFS client and server with the newer RPC implementation originally developed (actually ported from the userland sunrpc code) to support the NFS Lock Manager. I have tested this code extensively and I believe it is stable and that performance is at least equal to the legacy RPC implementation.
The NFS code currently contains support for both the new RPC implementation and the older legacy implementation inherited from the original NFS codebase. The default is to use the new implementation - add the NFS_LEGACYRPC option to fall back to the old code. When I merge this support back to RELENG_7, I will probably change this so that users have to 'opt in' to get the new code.
To use RPCSEC_GSS on either client or server, you must build a kernel which includes the KGSSAPI option and the crypto device. On the userland side, you must build at least a new libc, mountd, mount_nfs and gssd. You must install new versions of /etc/rc.d/gssd and /etc/rc.d/nfsd and add 'gssd_enable=YES' to /etc/rc.conf.
As long as gssd is running, you should be able to mount an NFS filesystem from a server that requires RPCSEC_GSS authentication. The mount itself can happen without any kerberos credentials but all access to the filesystem will be denied unless the accessing user has a valid ticket file in the standard place (/tmp/krb5cc_<uid>). There is currently no support for situations where the ticket file is in a different place, such as when the user logged in via SSH and has delegated credentials from that login. This restriction is also present in Solaris and Linux. In theory, we could improve this in future, possibly using Brooks Davis' implementation of variant symlinks.
Supporting RPCSEC_GSS on a server is nearly as simple. You must create service creds for the server in the form 'nfs/<fqdn>@<REALM>' and install them in /etc/krb5.keytab. The standard heimdal utility ktutil makes this fairly easy. After the service creds have been created, you can add a '-sec=krb5' option to /etc/exports and restart both mountd and nfsd.
The only other difference an administrator should notice is that nfsd doesn't fork to create service threads any more. In normal operation, there will be two nfsd processes, one in userland waiting for TCP connections and one in the kernel handling requests. The latter process will create as many kthreads as required - these should be visible via 'top -H'. The code has some support for varying the number of service threads according to load but initially at least, nfsd uses a fixed number of threads according to the value supplied to its '-n' option.
Sponsored by: Isilon Systems MFC after: 1 month
show more ...
|
#
c675522f |
| 26-Jun-2008 |
Doug Rabson <dfr@FreeBSD.org> |
Re-implement the client side of rpc.lockd in the kernel. This implementation provides the correct semantics for flock(2) style locks which are used by the lockf(1) command line tool and the pidfile(3
Re-implement the client side of rpc.lockd in the kernel. This implementation provides the correct semantics for flock(2) style locks which are used by the lockf(1) command line tool and the pidfile(3) library. It also implements recovery from server restarts and ensures that dirty cache blocks are written to the server before obtaining locks (allowing multiple clients to use file locking to safely share data).
Sponsored by: Isilon Systems PR: 94256 MFC after: 2 weeks
show more ...
|
Revision tags: release/7.0.0_cvs, release/7.0.0, release/6.3.0_cvs, release/6.3.0 |
|
#
faf529dc |
| 12-Oct-2007 |
Mohan Srinivasan <mohans@FreeBSD.org> |
NFS MP scaling changes. - Eliminate the hideous nfs_sndlock that serialized NFS/TCP request senders thru the sndlock. - Institute a new nfs_connectlock that serializes NFS/TCP reconnects. Add log
NFS MP scaling changes. - Eliminate the hideous nfs_sndlock that serialized NFS/TCP request senders thru the sndlock. - Institute a new nfs_connectlock that serializes NFS/TCP reconnects. Add logic to wait for pending request senders to finish sending before reconnecting. Dial down the sb_timeo for NFS/TCP sockets to 1 sec. - Break out the nfs xid manipulation under a new nfs xid lock, rather than over loading the nfs request lock for this purpose. - Fix some of the locking in nfs_request. Many thanks to Kris Kennaway for his help with this and for initiating the MP scaling analysis and work. Kris also tested this patch thorougly. Approved by: re@ (Ken Smith)
show more ...
|
#
e43982a8 |
| 25-Jan-2007 |
Bruce Evans <bde@FreeBSD.org> |
Unstaticize nfs_iosize() in nfsclient and use it in nfs4client instead of duplicating it except for larger style bugs in the copy.
Fix some nearby style bugs (including a harmless type mismatch) in
Unstaticize nfs_iosize() in nfsclient and use it in nfs4client instead of duplicating it except for larger style bugs in the copy.
Fix some nearby style bugs (including a harmless type mismatch) in and near the remaining copy.
This is part of fixing collisions of the 2 nfs*client's names. Even static names should have a unique prefixes so that they can be debugged easily.
show more ...
|
Revision tags: release/6.2.0_cvs, release/6.2.0 |
|
#
a18c4dc3 |
| 20-Nov-2006 |
Mohan Srinivasan <mohans@FreeBSD.org> |
1) Fix up locking in nfs_up() and nfs_down. 2) Reduce the acquisitions of the Giant lock in the nfs_socket.c paths significantly. - We don't need to acquire Giant before tsleeping on lbolt anymore,
1) Fix up locking in nfs_up() and nfs_down. 2) Reduce the acquisitions of the Giant lock in the nfs_socket.c paths significantly. - We don't need to acquire Giant before tsleeping on lbolt anymore, since jhb specialcased lbolt handling in msleep. - nfs_up() needs to acquire Giant only if printing the "server up" message. - nfs_timer() held Giant for the duration of the NFS timer processing, just because the printing of the message in nfs_down() needed it (and we acquire other locks in nfs_timer()). The acquisition of Giant is moved down into nfs_down() now, reducing the time Giant is held in that path.
Reported by: Kris Kennaway
show more ...
|
#
35259c2c |
| 18-Oct-2006 |
Bruce Evans <bde@FreeBSD.org> |
Fixed some style bugs (especially ones involving long lines and use of __P(())). There are many more.
|
#
5bbfbd14 |
| 25-May-2006 |
Mohan Srinivasan <mohans@FreeBSD.org> |
Since NFSv4 is not SMP safe, nfsiod needs to acquire Giant for NFSv4 mounts before doing the read/write.
Reported by: Chuck Lever.
|
#
6d0699a5 |
| 23-May-2006 |
Chuck Lever <cel@FreeBSD.org> |
NFS over TCP retransmit behavior should default to a 60 second time out, mimicing the NFS reference implementation.
NFS over TCP does not need fast retransmit timeouts, since network loss and conges
NFS over TCP retransmit behavior should default to a 60 second time out, mimicing the NFS reference implementation.
NFS over TCP does not need fast retransmit timeouts, since network loss and congestion are managed by the transport (TCP), unlike with NFS over UDP. A long timeout prevents the unnecessary retransmission of non- idempotent NFS requests.
Reviewed by: mohans, silby, rees? Sponsored by: Network Appliance, Incorporated
show more ...
|
#
94163ea2 |
| 23-May-2006 |
Chuck Lever <cel@FreeBSD.org> |
Refactor the NFS over UDP retransmit timeout estimation logic to allow the estimator to be more easily tuned and maintained.
There should be no functional change except there is now a lower limit on
Refactor the NFS over UDP retransmit timeout estimation logic to allow the estimator to be more easily tuned and maintained.
There should be no functional change except there is now a lower limit on the retransmit timeout to prevent the client from retransmitting faster than the server's disks can fill requests, and an upper limit to prevent the estimator from taking to long to retransmit during a server outage.
Reviewed by: mohan, kris, silby Sponsored by: Network Appliance, Incorporated
show more ...
|
Revision tags: release/5.5.0_cvs, release/5.5.0 |
|
#
f1cdf899 |
| 19-May-2006 |
Mohan Srinivasan <mohans@FreeBSD.org> |
Changes to make the NFS client MP safe.
Thanks to Kris Kennaway for testing and sending lots of bugs my way.
|
Revision tags: release/6.1.0_cvs, release/6.1.0, release/6.0.0_cvs, release/6.0.0 |
|
#
4321eae6 |
| 19-Jul-2005 |
Paul Saab <ps@FreeBSD.org> |
Make nfs_timer() MPSAFE. With this change, the bottom half of the NFS client (the interface with the protocol stack and callouts) is Giant-free.
Submitted by: Mohan Srinivasan.
|
Revision tags: release/5.4.0_cvs, release/5.4.0 |
|
#
56dd36b1 |
| 24-Jan-2005 |
Poul-Henning Kamp <phk@FreeBSD.org> |
Remove unused cred arg from nfs_vinvalbuf() and many bogus arguments passed for it.
|
Revision tags: release/4.11.0_cvs, release/4.11.0 |
|
#
c398230b |
| 07-Jan-2005 |
Warner Losh <imp@FreeBSD.org> |
/* -> /*- for license, minor formatting changes
|