]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
3.0: remove sunrpc patch that wasn't needed
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 17 Jan 2013 16:06:29 +0000 (08:06 -0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 17 Jan 2013 16:06:29 +0000 (08:06 -0800)
review-3.0/series
review-3.0/sunrpc-ensure-we-release-the-socket-write-lock-if-the-rpc_task-exits-early.patch [deleted file]

index 090f3a687d9c9692c96dfba13b23afb6882b1960..b13c6686ef57fd1a572879bd511b5c8753d0ffec 100644 (file)
@@ -15,7 +15,6 @@ target-tcm_fc-fix-the-lockdep-warning-due-to-inconsistent-lock-state.patch
 mfd-only-unregister-platform-devices-allocated-by-the-mfd-core.patch
 ext4-fix-memory-leak-in-ext4_xattr_set_acl-s-error-path.patch
 sunrpc-ensure-that-we-free-the-rpc_task-after-cleanups-are-done.patch
-sunrpc-ensure-we-release-the-socket-write-lock-if-the-rpc_task-exits-early.patch
 jffs2-hold-erase_completion_lock-on-exit.patch
 i2400m-add-intel-6150-device-ids.patch
 drm-i915-make-the-panel-fitter-work-on-pipes-b-and-c-on-ivb.patch
diff --git a/review-3.0/sunrpc-ensure-we-release-the-socket-write-lock-if-the-rpc_task-exits-early.patch b/review-3.0/sunrpc-ensure-we-release-the-socket-write-lock-if-the-rpc_task-exits-early.patch
deleted file mode 100644 (file)
index 8f09809..0000000
+++ /dev/null
@@ -1,64 +0,0 @@
-From 87ed50036b866db2ec2ba16b2a7aec4a2b0b7c39 Mon Sep 17 00:00:00 2001
-From: Trond Myklebust <Trond.Myklebust@netapp.com>
-Date: Mon, 7 Jan 2013 14:30:46 -0500
-Subject: SUNRPC: Ensure we release the socket write lock if the rpc_task exits early
-
-From: Trond Myklebust <Trond.Myklebust@netapp.com>
-
-commit 87ed50036b866db2ec2ba16b2a7aec4a2b0b7c39 upstream.
-
-If the rpc_task exits while holding the socket write lock before it has
-allocated an rpc slot, then the usual mechanism for releasing the write
-lock in xprt_release() is defeated.
-
-The problem occurs if the call to xprt_lock_write() initially fails, so
-that the rpc_task is put on the xprt->sending wait queue. If the task
-exits after being assigned the lock by __xprt_lock_write_func, but
-before it has retried the call to xprt_lock_and_alloc_slot(), then
-it calls xprt_release() while holding the write lock, but will
-immediately exit due to the test for task->tk_rqstp != NULL.
-
-Reported-by: Chris Perl <chris.perl@gmail.com>
-Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-
----
- net/sunrpc/sched.c |    3 +--
- net/sunrpc/xprt.c  |   12 ++++++++++--
- 2 files changed, 11 insertions(+), 4 deletions(-)
-
---- a/net/sunrpc/sched.c
-+++ b/net/sunrpc/sched.c
-@@ -882,8 +882,7 @@ static void rpc_async_release(struct wor
- static void rpc_release_resources_task(struct rpc_task *task)
- {
--      if (task->tk_rqstp)
--              xprt_release(task);
-+      xprt_release(task);
-       if (task->tk_msg.rpc_cred) {
-               put_rpccred(task->tk_msg.rpc_cred);
-               task->tk_msg.rpc_cred = NULL;
---- a/net/sunrpc/xprt.c
-+++ b/net/sunrpc/xprt.c
-@@ -1040,10 +1040,18 @@ static void xprt_request_init(struct rpc
- void xprt_release(struct rpc_task *task)
- {
-       struct rpc_xprt *xprt;
--      struct rpc_rqst *req;
-+      struct rpc_rqst *req = task->tk_rqstp;
--      if (!(req = task->tk_rqstp))
-+      if (req == NULL) {
-+              if (task->tk_client) {
-+                      rcu_read_lock();
-+                      xprt = rcu_dereference(task->tk_client->cl_xprt);
-+                      if (xprt->snd_task == task)
-+                              xprt_release_write(xprt, task);
-+                      rcu_read_unlock();
-+              }
-               return;
-+      }
-       xprt = req->rq_xprt;
-       rpc_count_iostats(task);