diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2011-03-17 17:40:00 -0700 | 
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2011-03-17 17:40:00 -0700 | 
| commit | 179198373cf374f0ef793f1023c1cdd83b53674d (patch) | |
| tree | 9c7f9e82b936864b9d8cf91b3d4121a3c8d2671c /net/sunrpc/sched.c | |
| parent | 374e55251cacfb68d331bb8a574b2de8160aacc2 (diff) | |
| parent | 8e26de238fd794c8ea56a5c98bf67c40cfeb051d (diff) | |
| download | olio-linux-3.10-179198373cf374f0ef793f1023c1cdd83b53674d.tar.xz olio-linux-3.10-179198373cf374f0ef793f1023c1cdd83b53674d.zip  | |
Merge branch 'nfs-for-2.6.39' of git://git.linux-nfs.org/projects/trondmy/nfs-2.6
* 'nfs-for-2.6.39' of git://git.linux-nfs.org/projects/trondmy/nfs-2.6: (54 commits)
  RPC: killing RPC tasks races fixed
  xprt: remove redundant check
  SUNRPC: Convert struct rpc_xprt to use atomic_t counters
  SUNRPC: Ensure we always run the tk_callback before tk_action
  sunrpc: fix printk format warning
  xprt: remove redundant null check
  nfs: BKL is no longer needed, so remove the include
  NFS: Fix a warning in fs/nfs/idmap.c
  Cleanup: Factor out some cut-and-paste code.
  cleanup: save 60 lines/100 bytes by combining two mostly duplicate functions.
  NFS: account direct-io into task io accounting
  gss:krb5 only include enctype numbers in gm_upcall_enctypes
  RPCRDMA: Fix FRMR registration/invalidate handling.
  RPCRDMA: Fix to XDR page base interpretation in marshalling logic.
  NFSv4: Send unmapped uid/gids to the server when using auth_sys
  NFSv4: Propagate the error NFS4ERR_BADOWNER to nfs4_do_setattr
  NFSv4: cleanup idmapper functions to take an nfs_server argument
  NFSv4: Send unmapped uid/gids to the server if the idmapper fails
  NFSv4: If the server sends us a numeric uid/gid then accept it
  NFSv4.1: reject zero layout with zeroed stripe unit
  ...
Diffstat (limited to 'net/sunrpc/sched.c')
| -rw-r--r-- | net/sunrpc/sched.c | 29 | 
1 files changed, 7 insertions, 22 deletions
diff --git a/net/sunrpc/sched.c b/net/sunrpc/sched.c index 3fc8624fcd1..ffb687671da 100644 --- a/net/sunrpc/sched.c +++ b/net/sunrpc/sched.c @@ -299,15 +299,8 @@ static void rpc_make_runnable(struct rpc_task *task)  	if (rpc_test_and_set_running(task))  		return;  	if (RPC_IS_ASYNC(task)) { -		int status; -  		INIT_WORK(&task->u.tk_work, rpc_async_schedule); -		status = queue_work(rpciod_workqueue, &task->u.tk_work); -		if (status < 0) { -			printk(KERN_WARNING "RPC: failed to add task to queue: error: %d!\n", status); -			task->tk_status = status; -			return; -		} +		queue_work(rpciod_workqueue, &task->u.tk_work);  	} else  		wake_up_bit(&task->tk_runstate, RPC_TASK_QUEUED);  } @@ -637,14 +630,12 @@ static void __rpc_execute(struct rpc_task *task)  			save_callback = task->tk_callback;  			task->tk_callback = NULL;  			save_callback(task); -		} - -		/* -		 * Perform the next FSM step. -		 * tk_action may be NULL when the task has been killed -		 * by someone else. -		 */ -		if (!RPC_IS_QUEUED(task)) { +		} else { +			/* +			 * Perform the next FSM step. +			 * tk_action may be NULL when the task has been killed +			 * by someone else. +			 */  			if (task->tk_action == NULL)  				break;  			task->tk_action(task); @@ -843,12 +834,6 @@ struct rpc_task *rpc_new_task(const struct rpc_task_setup *setup_data)  	}  	rpc_init_task(task, setup_data); -	if (task->tk_status < 0) { -		int err = task->tk_status; -		rpc_put_task(task); -		return ERR_PTR(err); -	} -  	task->tk_flags |= flags;  	dprintk("RPC:       allocated task %p\n", task);  	return task;  |