summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* SUNRPC: rpcauth_create needs to know about rpc_clnt clone statusTrond Myklebust2013-09-021-7/+8
| | | | | | | | Ensure that we set rpc_clnt->cl_parent before calling rpc_client_register so that rpcauth_create can find any existing RPCSEC_GSS caches for this transport. Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
* RPCSEC_GSS: Share all credential caches on a per-transport basisTrond Myklebust2013-09-021-3/+89
| | | | | | | Ensure that all struct rpc_clnt for any given socket/rdma channel share the same RPCSEC_GSS/krb5,krb5i,krb5p caches. Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
* RPCSEC_GSS: Share rpc_pipes when an rpc_clnt owns multiple rpcsec auth cachesTrond Myklebust2013-09-011-9/+68
| | | | | | | Ensure that if an rpc_clnt owns more than one RPCSEC_GSS-based authentication mechanism, then those caches will share the same 'gssd' upcall pipe. Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
* SUNRPC: Add a helper to allow sharing of rpc_pipefs directory objectsTrond Myklebust2013-09-012-0/+41
| | | | | | | Add support for looking up existing objects and creating new ones if there is no match. Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
* SUNRPC: Remove the rpc_client->cl_dentryTrond Myklebust2013-09-014-25/+26
| | | | | | It is now redundant. Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
* NFSv4: Convert idmapper to use the new framework for pipefs dentriesTrond Myklebust2013-09-011-150/+34
| | | | Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
* SUNRPC: Remove the obsolete auth-only interface for pipefs dentry managementTrond Myklebust2013-09-012-11/+1
| | | | Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
* RPCSEC_GSS: Switch auth_gss to use the new framework for pipefs dentriesTrond Myklebust2013-09-011-89/+92
| | | | Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
* SUNRPC: Add a framework to clean up management of rpc_pipefs directoriesTrond Myklebust2013-08-304-4/+168
| | | | | | | | | | | | | | The current system requires everyone to set up notifiers, manage directory locking, etc. What we really want to do is have the rpc_client create its directory, and then create all the entries. This patch will allow the RPCSEC_GSS and NFS code to register all the objects that they want to have appear in the directory, and then have the sunrpc code call them back to actually create/destroy their pipefs dentries when the rpc_client creates/destroys the parent. Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
* NFSv4: Fix a potentially Oopsable condition in __nfs_idmap_unregisterTrond Myklebust2013-08-301-1/+3
| | | | | | | Ensure that __nfs_idmap_unregister can be called twice without consequences. Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
* RPCSEC_GSS: Fix an Oopsable condition when creating/destroying pipefs objectsTrond Myklebust2013-08-301-12/+20
| | | | | | | | | If an error condition occurs on rpc_pipefs creation, or the user mounts rpc_pipefs and then unmounts it, then the dentries in struct gss_auth need to be reset to NULL so that a second call to gss_pipes_dentries_destroy doesn't try to free them again. Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
* RPCSEC_GSS: Further cleanupsTrond Myklebust2013-08-301-11/+20
| | | | | | | Don't pass the rpc_client as a parameter, when what we really want is the net namespace. Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
* SUNRPC: Replace clnt->cl_principalTrond Myklebust2013-08-308-25/+26
| | | | | | | | The clnt->cl_principal is being used exclusively to store the service target name for RPCSEC_GSS/krb5 callbacks. Replace it with something that is stored only in the RPCSEC_GSS-specific code. Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
* RPCSEC_GSS: Clean up upcall message allocationTrond Myklebust2013-08-301-18/+19
| | | | | | | | | | Optimise away gss_encode_msg: we don't need to look up the pipe version a second time. Save the gss target name in struct gss_auth. It is a property of the auth cache itself, and doesn't really belong in the rpc_client. Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
* SUNRPC: Cleanup rpc_setup_pipedirTrond Myklebust2013-08-301-14/+13
| | | | | | The directory name is _always_ clnt->cl_program->pipe_dir_name. Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
* SUNRPC: Remove unused struct rpc_clnt field cl_protnameTrond Myklebust2013-08-302-2/+0
| | | | Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
* SUNRPC: Deprecate rpc_client->cl_protnameTrond Myklebust2013-08-303-11/+11
| | | | | | | It just duplicates the cl_program->name, and is not used in any fast paths where the extra dereference will cause a hit. Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
* NFS: Fix up two use-after-free issues with the new tracing codeTrond Myklebust2013-08-301-2/+2
| | | | | | | | We don't want to pass the context argument to trace_nfs_atomic_open_exit() after it has been released. Reported-by: Dan Carpenter <dan.carpenter@oracle.com> Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
* NFS: remove incorrect "Lock reclaim failed!" warning.NeilBrown2013-08-221-7/+9
| | | | | | | | | | | | | | | | | | | | After reclaiming state that was lost, the NFS client tries to reclaim any locks, and then checks that each one has NFS_LOCK_INITIALIZED set (which means that the server has confirmed the lock). However if the client holds a delegation, nfs_reclaim_locks() simply aborts (or more accurately it called nfs_lock_reclaim() and that returns without doing anything). This is because when a delegation is held, the server doesn't need to know about locks. So if a delegation is held, NFS_LOCK_INITIALIZED is not expected, and its absence is certainly not an error. So don't print the warnings if NFS_DELGATED_STATE is set. Signed-off-by: NeilBrown <neilb@suse.de> Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
* NFSv4.1: Add tracepoints for debugging test_stateid eventsTrond Myklebust2013-08-222-0/+52
| | | | | | Add tracepoints to detect issues with the TEST_STATEID operation. Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
* NFSv4.1: Add tracepoints for debugging slot table operationsTrond Myklebust2013-08-225-0/+154
| | | | | | | Add tracepoints to nfs41_setup_sequence and nfs41_sequence_done to track session and slot table state changes. Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
* NFSv4.1: Add tracepoints for debugging layoutget/return/commitTrond Myklebust2013-08-222-0/+61
| | | | Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
* NFSv4: Add tracepoints for debugging reads and writesTrond Myklebust2013-08-225-0/+169
| | | | | | | Set up tracepoints to track read, write and commit, as well as pNFS reads and writes and commits to the data server. Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
* NFSv4: Add tracepoints for debugging getattrTrond Myklebust2013-08-222-2/+74
| | | | Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
* NFSv4: Add tracepoints for debugging the idmapperTrond Myklebust2013-08-222-0/+51
| | | | | | Add tracepoints to help debug uid/gid mappings to username/group. Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
* NFSv4: Add tracepoints for debugging delegationsTrond Myklebust2013-08-224-0/+79
| | | | | | | Set up tracepoints to track when delegations are set, reclaimed, returned by the client, or recalled by the server. Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
* NFSv4: Add tracepoints for debugging renameTrond Myklebust2013-08-222-4/+49
| | | | | | Add tracepoints to debug renames. Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
* NFSv4: Add tracepoints for debugging inode manipulationsTrond Myklebust2013-08-222-14/+73
| | | | | | | | Set up basic tracepoints for debugging NFSv4 setattr, access, readlink, readdir, get_acl set_acl get_security_label, and set_security_label. Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
* NFSv4: Add tracepoints for debugging lookup/create operationsTrond Myklebust2013-08-222-14/+72
| | | | | | | Set up basic tracepoints for debugging NFSv4 lookup, unlink/remove, symlink, mkdir, mknod, fs_locations and secinfo. Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
* NFSv4: Add tracepoints for debugging file lockingTrond Myklebust2013-08-222-2/+82
| | | | | | Set up basic tracepoints for debugging NFSv4 file lock/unlock Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
* NFSv4: Add tracepoints for debugging file openTrond Myklebust2013-08-222-0/+129
| | | | | | Set up basic tracepoints for debugging NFSv4 file open/close Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
* NFSv4: Add tracepoints for debugging state management problemsTrond Myklebust2013-08-224-1/+245
| | | | | | | Set up basic tracepoints for debugging client id creation/destruction and session creation/destruction. Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
* NFS: Add tracepoints for debugging NFS hard linksTrond Myklebust2013-08-222-0/+72
| | | | Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
* NFS: Add tracepoints for debugging NFS rename and sillyrename issuesTrond Myklebust2013-08-223-0/+146
| | | | Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
* NFS: Add tracepoints for debugging directory changesTrond Myklebust2013-08-222-1/+104
| | | | | | Add tracepoints for mknod, mkdir, rmdir, remove (unlink) and symlink. Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
* NFS: Add tracepoints for debugging generic file create eventsTrond Myklebust2013-08-222-0/+72
| | | | Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
* NFS: Add event tracing for generic NFS lookupsTrond Myklebust2013-08-223-0/+203
| | | | | | Add tracepoints for lookup, lookup_revalidate and atomic_open Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
* NFS: Pass in lookup flags from nfs_atomic_open to nfs_lookupTrond Myklebust2013-08-221-1/+3
| | | | | | | When doing an open of a directory, ensure that we do pass the lookup flags from nfs_atomic_open into nfs_lookup. Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
* NFS: Add event tracing for generic NFS eventsTrond Myklebust2013-08-227-11/+231
| | | | | | | | | | | Add tracepoints for inode attribute updates, attribute revalidation, writeback start/end fsync start/end, attribute change start/end, permission check start/end. The intention is to enable performance tracing using 'perf'as well as improving debugging. Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
* NFS: refactor code for calculating the crc32 hash of a filehandleTrond Myklebust2013-08-222-2/+21
| | | | | | | We want to be able to display the crc32 hash of the filehandle in tracepoints. Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
* NFS: Clean up nfs_sillyrename()Trond Myklebust2013-08-221-10/+16
| | | | | | | Optimise for the case where we only do one lookup. Clean up the code so it is obvious that silly[] is not a dynamic array. Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
* NFSv4: Fix an incorrect pointer declaration in decode_first_pnfs_layout_typeTrond Myklebust2013-08-221-1/+1
| | | | | | | We always encode to __be32 format in XDR: silences a sparse warning. Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com> Cc: Andy Adamson <andros@netapp.com>
* NFSv4: Deal with a sparse warning in nfs_idmap_get_key()Trond Myklebust2013-08-221-1/+1
| | | | | Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com> Cc: Bryan Schumaker <bjschuma@netapp.com>
* NFSv4: Deal with some more sparse warningsTrond Myklebust2013-08-222-7/+7
| | | | | | | | Technically, we don't really need to convert these time stamps, since they are actually cookies. Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com> Cc: Chuck Lever <Chuck.Lever@oracle.com>
* NFSv4: Deal with a sparse warning in nfs4_opendata_allocTrond Myklebust2013-08-221-1/+1
| | | | Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
* NFSv3: Deal with a sparse warning in nfs3_proc_createTrond Myklebust2013-08-211-2/+2
| | | | Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
* NFS: Remove the NFSv4 "open optimisation" from nfs_permissionTrond Myklebust2013-08-201-5/+0
| | | | | | | | Ever since commit 6168f62cb (Add ACCESS operation to OPEN compound) the NFSv4 atomic open has primed the access cache, and so nfs_permission will no longer do an RPC call on the wire. Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
* NFSv4.1 Use clientid management rpc_clnt for secinfo_no_nameAndy Adamson2013-08-081-1/+6
| | | | | | | | | | As per RFC 5661 Security Considerations Commit 4edaa308 "NFS: Use "krb5i" to establish NFSv4 state whenever possible" uses the nfs_client cl_rpcclient for all clientid management operations. Signed-off-by: Andy Adamson <andros@netapp.com> Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
* NFSv4.1 Use clientid management rpc_clnt for secinfoAndy Adamson2013-08-081-1/+6
| | | | | | | | | | As per RFC 3530 and RFC 5661 Security Considerations Commit 4edaa308 "NFS: Use "krb5i" to establish NFSv4 state whenever possible" uses the nfs_client cl_rpcclient for all clientid management operations. Signed-off-by: Andy Adamson <andros@netapp.com> Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
* NFSv4.1 Increase NFS4_DEF_SLOT_TABLE_SIZEAndy Adamson2013-08-071-1/+1
| | | | | | | | | | Increase NFS4_DEF_SLOT_TABLE_SIZE which is used as the client ca_maxreequests value in CREATE_SESSION. Current non-dynamic session slot server implementations use the client ca_maxrequests as a maximum slot number: 64 session slots can handle most workloads. Signed-off-by: Andy Adamson <andros@netapp.com> Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
OpenPOWER on IntegriCloud