aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2010-10-01nfsd4: remove separate cb_args structJ. Bruce Fields2-30/+25
I don't see the point of the separate struct. It seems to just be getting in the way. Signed-off-by: J. Bruce Fields <[email protected]>
2010-10-01nfsd4: use generic callback code in null caseJ. Bruce Fields3-15/+20
This will eventually allow us, for example, to kick off null callback from contexts where we can't sleep. Signed-off-by: J. Bruce Fields <[email protected]>
2010-10-01nfsd4: generic callback codeJ. Bruce Fields2-39/+33
Make the recall callback code more generic, so that other callbacks will be able to use it too. Signed-off-by: J. Bruce Fields <[email protected]>
2010-10-01nfsd4: rename nfs4_rpc_args->nfsd4_cb_argsJ. Bruce Fields2-9/+9
With apologies for the gratuitous rename, the new name seems more helpful to me. Signed-off-by: J. Bruce Fields <[email protected]>
2010-10-01nfsd4: combine nfs4_rpc_args and nfsd4_cb_sequenceJ. Bruce Fields2-23/+18
These two structs don't really need to be distinct as far as I can tell. Signed-off-by: J. Bruce Fields <[email protected]>
2010-10-01nfsd4: minor variable renaming (cb -> conn)J. Bruce Fields2-22/+22
Now that we have both nfsd4_callback and nfsd4_cb_conn structures, I get confused if variables of both types are always named cb.... Signed-off-by: J. Bruce Fields <[email protected]>
2010-10-01nfsd4: remove spkm3J. Bruce Fields7-906/+0
Unfortunately, spkm3 never got very far; while interoperability with one other implementation was demonstrated at some point, problems were found with the spec that were deemed not worth fixing. The kernel code is useless on its own without nfs-utils patches which were never merged into nfs-utils, and were only ever available from citi.umich.edu. They appear not to have been updated since 2005. Therefore it seems safe to assume that this code has no users, and never will. Signed-off-by: J. Bruce Fields <[email protected]>
2010-10-01sunrpc: fix race in new cache_wait code.NeilBrown1-3/+2
If we set up to wait for a cache item to be filled in, and then find that it is no longer pending, it could be that some other thread is in 'cache_revisit_request' and has moved our request to its 'pending' list. So when our setup_deferral calls cache_revisit_request it will find nothing to put on the pending list, and do nothing. We then return from cache_wait_req, thus leaving the 'sleeper' on-stack structure open to being corrupted by subsequent stack usage. However that 'sleeper' could still be on the 'pending' list that the other thread is looking at and so any corruption could cause it to behave badly. To avoid this race we simply take the same path as if the 'wait_for_completion_interruptible_timeout' was interrupted and if the sleeper is no longer on the list (which it won't be) we wait on the completion - which will ensure that any other cache_revisit_request will have let go of the sleeper. Signed-off-by: NeilBrown <[email protected]> Signed-off-by: J. Bruce Fields <[email protected]>
2010-10-01sunrpc: Create sockets in net namespacesPavel Emelyanov2-5/+5
The context is already known in all the sock_create callers. Signed-off-by: Pavel Emelyanov <[email protected]> Signed-off-by: J. Bruce Fields <[email protected]>
2010-10-01net: Export __sock_createPavel Emelyanov2-1/+4
Signed-off-by: Pavel Emelyanov <[email protected]> Acked-by: David S. Miller <[email protected]> Signed-off-by: J. Bruce Fields <[email protected]>
2010-10-01sunrpc: Tag rpc_xprt with netPavel Emelyanov4-4/+7
The net is known from the xprt_create and this tagging will also give un the context in the conntection workers where real sockets are created. Signed-off-by: Pavel Emelyanov <[email protected]> Signed-off-by: J. Bruce Fields <[email protected]>
2010-10-01sunrpc: Add net to xprt_createPavel Emelyanov2-0/+2
Signed-off-by: Pavel Emelyanov <[email protected]> Signed-off-by: J. Bruce Fields <[email protected]>
2010-10-01sunrpc: Add net to rpc_create_argsPavel Emelyanov7-0/+9
Signed-off-by: Pavel Emelyanov <[email protected]> Signed-off-by: J. Bruce Fields <[email protected]>
2010-10-01sunrpc: Pull net argument downto svc_create_socketPavel Emelyanov4-5/+13
After this the socket creation in it knows the context. Signed-off-by: Pavel Emelyanov <[email protected]> Signed-off-by: J. Bruce Fields <[email protected]>
2010-10-01sunrpc: Add net argument to svc_create_xprtPavel Emelyanov6-11/+12
Signed-off-by: Pavel Emelyanov <[email protected]> Signed-off-by: J. Bruce Fields <[email protected]>
2010-10-01sunrpc: Factor out rpc_xprt freeingPavel Emelyanov4-13/+14
Signed-off-by: Pavel Emelyanov <[email protected]> Signed-off-by: J. Bruce Fields <[email protected]>
2010-10-01sunrpc: Factor out rpc_xprt allocationPavel Emelyanov4-23/+28
Signed-off-by: Pavel Emelyanov <[email protected]> Signed-off-by: J. Bruce Fields <[email protected]>
2010-10-01nfsd4: adjust buflen for encoded attrs bitmap based on actual bitmap lengthBenny Halevy1-6/+12
The existing code adjusted it based on the worst case scenario for the returned bitmap and the best case scenario for the supported attrs attribute. Signed-off-by: Benny Halevy <[email protected]> [[email protected]: removed likely/unlikely's] Signed-off-by: J. Bruce Fields <[email protected]>
2010-09-29sunrpc: fix up rpcauth_remove_module section mismatchStephen Rothwell3-4/+4
On Wed, 29 Sep 2010 14:02:38 +1000 Stephen Rothwell <[email protected]> wrote: > > After merging the final tree, today's linux-next build (powerpc > ppc44x_defconfig) produced tis warning: > > WARNING: net/sunrpc/sunrpc.o(.init.text+0x110): Section mismatch in reference from the function init_sunrpc() to the function .exit.text:rpcauth_remove_module() > The function __init init_sunrpc() references > a function __exit rpcauth_remove_module(). > This is often seen when error handling in the init function > uses functionality in the exit path. > The fix is often to remove the __exit annotation of > rpcauth_remove_module() so it may be used outside an exit section. > > Probably caused by commit 2f72c9b73730c335381b13e2bd221abe1acea394 > ("sunrpc: The per-net skeleton"). This actually causes a build failure on a sparc32 defconfig build: `rpcauth_remove_module' referenced in section `.init.text' of net/built-in.o: defined in discarded section `.exit.text' of net/built-in.o I applied the following patch for today: Fixes: `rpcauth_remove_module' referenced in section `.init.text' of net/built-in.o: defined in discarded section `.exit.text' of net/built-in.o Signed-off-by: Stephen Rothwell <[email protected]> Acked-by: Pavel Emelyanov <[email protected]> Signed-off-by: J. Bruce Fields <[email protected]>
2010-09-27sunrpc: Make the ip_map_cache be per-netPavel Emelyanov3-31/+108
Everything that is required for that already exists: * the per-net cache registration with respective proc entries * the context (struct net) is available in all the users Signed-off-by: Pavel Emelyanov <[email protected]> Signed-off-by: J. Bruce Fields <[email protected]>
2010-09-27sunrpc: Make the /proc/net/rpc appear in net namespacesPavel Emelyanov5-35/+59
Signed-off-by: Pavel Emelyanov <[email protected]> Signed-off-by: J. Bruce Fields <[email protected]>
2010-09-27sunrpc: The per-net skeletonPavel Emelyanov2-1/+42
Register empty per-net operations for the sunrpc layer. Signed-off-by: Pavel Emelyanov <[email protected]> Signed-off-by: J. Bruce Fields <[email protected]>
2010-09-27sunrpc: Tag svc_xprt with netPavel Emelyanov2-0/+4
The transport representation should be per-net of course. Signed-off-by: Pavel Emelyanov <[email protected]> Signed-off-by: J. Bruce Fields <[email protected]>
2010-09-27sunrpc: Add routines that allow registering per-net cachesPavel Emelyanov2-8/+21
Existing calls do the same, but for the init_net. Signed-off-by: Pavel Emelyanov <[email protected]> Signed-off-by: J. Bruce Fields <[email protected]>
2010-09-27sunrpc: Add net to pure API callsPavel Emelyanov4-13/+15
There are two calls that operate on ip_map_cache and are directly called from the nfsd code. Other places will be handled in a different way. Signed-off-by: Pavel Emelyanov <[email protected]> Signed-off-by: J. Bruce Fields <[email protected]>
2010-09-27sunrpc: Pass xprt to cached get/put routinesPavel Emelyanov1-7/+5
They do not require the rqst actually and having the xprt simplifies further patching. Signed-off-by: Pavel Emelyanov <[email protected]> Signed-off-by: J. Bruce Fields <[email protected]>
2010-09-27sunrpc: Make xprt auth cache release work with the xprtPavel Emelyanov3-7/+10
This is done in order to facilitate getting the ip_map_cache from which to put the ip_map. Signed-off-by: Pavel Emelyanov <[email protected]> Signed-off-by: J. Bruce Fields <[email protected]>
2010-09-27sunrpc: Pass the ip_map_parse's cd to lower callsPavel Emelyanov1-10/+21
The target is to have many ip_map_cache-s in the system. This particular patch handles its usage by the ip_map_parse callback. Signed-off-by: Pavel Emelyanov <[email protected]> Signed-off-by: J. Bruce Fields <[email protected]>
2010-09-26nfsd: fix /proc/net/rpc/nfsd.export/content displayJ. Bruce Fields1-11/+29
Note with "first" always 0, and "lastflags" initially 0, we always dump a spurious set of 0 flags at the start, among other problems. Fix. And attempt to make the code a little more obvious. Signed-off-by: J. Bruce Fields <[email protected]>
2010-09-23nfsd: Export get_task_comm for nfsdPavel Emelyanov1-3/+1
The git://linux-nfs.org/~bfields/linux.git nfsd-next branch doesn't compile when nfsd is a module with the following error: ERROR: "get_task_comm" [fs/nfsd/nfsd.ko] undefined! Replace the get_task_comm call with direct comm access, which is safe for current. Signed-off-by: Pavel Emelyanov <[email protected]> Signed-off-by: J. Bruce Fields <[email protected]>
2010-09-22nfsd: allow deprecated interface to be compiled out.NeilBrown5-8/+43
Add CONFIG_NFSD_DEPRECATED, default to y. Only include deprecated interface if this is defined. This allows distros to remove this interface before the official removal, and allows developers to test without it. Signed-off-by: NeilBrown <[email protected]> Signed-off-by: J. Bruce Fields <[email protected]>
2010-09-22nfsd: formally deprecate legacy nfsd syscall interfaceNeilBrown2-0/+20
The syscall interface is has been replaced by a more flexible interface since 2.6.0. It is time to work towards discarding the old interface. So add a entry in feature-removal-schedule.txt and print a warning when the interface is used. Signed-off-by: NeilBrown <[email protected]> Signed-off-by: J. Bruce Fields <[email protected]>
2010-09-22sunrpc/cache: fix recent breakage of cache_clean_deferredNeilBrown1-1/+3
commit 6610f720e9e8103c22d1f1ccf8fbb695550a571f broke cache_clean_deferred as entries are no longer added to the pending list for subsequent revisiting. So put those requests back on the pending list. Signed-off-by: NeilBrown <[email protected]> Signed-off-by: J. Bruce Fields <[email protected]>
2010-09-22lockd: Mostly remove BKL from the serverBryan Schumaker3-14/+21
This patch removes all but one call to lock_kernel() from the server. Signed-off-by: Bryan Schumaker <[email protected]> Signed-off-by: J. Bruce Fields <[email protected]>
2010-09-21sunrpc/cache: don't use custom hex_to_bin() converterAndy Shevchenko1-7/+13
Signed-off-by: Andy Shevchenko <[email protected]> Cc: Trond Myklebust <[email protected]> Cc: [email protected] Signed-off-by: J. Bruce Fields <[email protected]>
2010-09-21sunrpc/cache: change deferred-request hash table to use hlist.NeilBrown2-19/+11
Being a hash table, hlist is the best option. There is currently some ugliness were we treat "->next == NULL" as a special case to avoid having to initialise the whole array. This change nicely gets rid of that case. Signed-off-by: NeilBrown <[email protected]> Signed-off-by: J. Bruce Fields <[email protected]>
2010-09-21svcauth_gss: replace a trivial 'switch' with an 'if'NeilBrown1-22/+19
Code like: switch(xxx) { case -error1: case -error2: .. return; case 0: stuff; } can more naturally be written: if (xxx < 0) return; stuff; Signed-off-by: NeilBrown <[email protected]> Signed-off-by: J. Bruce Fields <[email protected]>
2010-09-21nfsd/idmap: drop special request deferal in favour of improved default.NeilBrown1-94/+11
The idmap code manages request deferal by waiting for a reply from userspace rather than putting the NFS request on a queue to be retried from the start. Now that the common deferal code does this there is no need for the special code in idmap. Signed-off-by: NeilBrown <[email protected]> Signed-off-by: J. Bruce Fields <[email protected]>
2010-09-21nfsd: disable deferral for NFSv4NeilBrown1-2/+5
Now that a slight delay in getting a reply to an upcall doesn't require deferring of requests, request deferral for all NFSv4 requests - the concept doesn't really fit with the v4 model. Signed-off-by: NeilBrown <[email protected]> Signed-off-by: J. Bruce Fields <[email protected]>
2010-09-21sunrpc: close connection when a request is irretrievably lost.NeilBrown4-12/+24
If we drop a request in the sunrpc layer, either due kmalloc failure, or due to a cache miss when we could not queue the request for later replay, then close the connection to encourage the client to retry sooner. Note that if the drop happens in the NFS layer, NFSERR_JUKEBOX (aka NFS4ERR_DELAY) is returned to guide the client concerning replay. Signed-off-by: NeilBrown <[email protected]> Signed-off-by: J. Bruce Fields <[email protected]>
2010-09-19nfsd4: fix hang on fast-booting nfs serversJ. Bruce Fields1-4/+20
The last_close field of a cache_detail is initialized to zero, so the condition detail->last_close < seconds_since_boot() - 30 may be false even for a cache that was never opened. However, we want to immediately fail upcalls to caches that were never opened: in the case of the auth_unix_gid cache, especially, which may never be opened by mountd (if the --manage-gids option is not set), we want to fail the upcall immediately. Otherwise client requests will be dropped unnecessarily on reboot. Also document these conditions. Signed-off-by: J. Bruce Fields <[email protected]>
2010-09-19Merge remote branch 'trond/bugfixes' into for-2.6.37J. Bruce Fields443-2541/+5135
Without some client-side fixes, server testing is currently difficult.
2010-09-12SUNRPC: Fix the NFSv4 and RPCSEC_GSS Kconfig dependenciesTrond Myklebust2-0/+2
The NFSv4 client's callback server calls svc_gss_principal(), which is defined in the auth_rpcgss.ko The NFSv4 server has the same dependency, and in addition calls svcauth_gss_flavor(), gss_mech_get_by_pseudoflavor(), gss_pseudoflavor_to_service() and gss_mech_put() from the same module. The module auth_rpcgss itself has no dependencies aside from sunrpc, so we only need to select RPCSEC_GSS. Reported-by: Uwe Kleine-König <[email protected]> Signed-off-by: Trond Myklebust <[email protected]>
2010-09-12statfs() gives ESTALE errorMenyhart Zoltan1-0/+8
Hi, An NFS client executes a statfs("file", &buff) call. "file" exists / existed, the client has read / written it, but it has already closed it. user_path(pathname, &path) looks up "file" successfully in the directory-cache and restarts the aging timer of the directory-entry. Even if "file" has already been removed from the server, because the lookupcache=positive option I use, keeps the entries valid for a while. nfs_statfs() returns ESTALE if "file" has already been removed from the server. If the user application repeats the statfs("file", &buff) call, we are stuck: "file" remains young forever in the directory-cache. Signed-off-by: Zoltan Menyhart <[email protected]> Signed-off-by: Trond Myklebust <[email protected]> Cc: [email protected]
2010-09-12NFS: Fix a typo in nfs_sockaddr_match_ipaddr6Trond Myklebust1-1/+1
Reported-by: Ben Greear <[email protected]> Signed-off-by: Trond Myklebust <[email protected]> Cc: [email protected]
2010-09-12sunrpc: increase MAX_HASHTABLE_BITS to 14Miquel van Smoorenburg1-1/+1
The maximum size of the authcache is now set to 1024 (10 bits), but on our server we need at least 4096 (12 bits). Increase MAX_HASHTABLE_BITS to 14. This is a maximum of 16384 entries, each containing a pointer (8 bytes on x86_64). This is exactly the limit of kmalloc() (128K). Signed-off-by: Miquel van Smoorenburg <[email protected]> Signed-off-by: Trond Myklebust <[email protected]>
2010-09-12gss:spkm3 miss returning error to caller when import security contextBian Naimeng1-1/+4
spkm3 miss returning error to up layer when import security context, it may be return ok though it has failed to import security context. Signed-off-by: Bian Naimeng <[email protected]> Signed-off-by: Trond Myklebust <[email protected]>
2010-09-12gss:krb5 miss returning error to caller when import security contextBian Naimeng1-2/+8
krb5 miss returning error to up layer when import security context, it may be return ok though it has failed to import security context. Signed-off-by: Bian Naimeng <[email protected]> Signed-off-by: Trond Myklebust <[email protected]>
2010-09-12Remove incorrect do_vfs_lock messageFabio Olive Leite1-4/+0
The do_vfs_lock function on fs/nfs/file.c is only called if NLM is not being used, via the -onolock mount option. Therefore it cannot really be "out of sync with lock manager" when the local locking function called returns an error, as there will be no corresponding call to the NLM. For details, simply check the if/else on do_setlk and do_unlk on fs/nfs/file.c. Signed-Off-By: Fabio Olive Leite <[email protected]> Reviewed-by: Jeff Layton <[email protected]> Signed-off-by: Trond Myklebust <[email protected]>
2010-09-12SUNRPC: cleanup state-machine orderingJ. Bruce Fields1-42/+42
This is just a minor cleanup: net/sunrpc/clnt.c clarifies the rpc client state machine by commenting each state and by laying out the functions implementing each state in the order that each state is normally executed (in the absence of errors). The previous patch "Fix null dereference in call_allocate" changed the order of the states. Move the functions and update the comments to reflect the change. Signed-off-by: J. Bruce Fields <[email protected]> Signed-off-by: Trond Myklebust <[email protected]>