]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
3.10: remove to sunrpc patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 23 Jul 2013 21:41:35 +0000 (14:41 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 23 Jul 2013 21:41:35 +0000 (14:41 -0700)
queue-3.10/series
queue-3.10/sunrpc-fix-a-deadlock-in-rpc_client_register.patch [deleted file]
queue-3.10/sunrpc-split-client-creation-routine-into-setup-and-registration.patch [deleted file]

index e22608eeb43ec2ee1dcd3bd63a875739b91f502b..4586fee3089e4896a1207cd965886aac3695d679 100644 (file)
@@ -86,8 +86,6 @@ drm-radeon-add-backlight-quirk-for-hybrid-mac.patch
 drm-nva3-disp-fix-hdmi-audio-regression.patch
 drm-nv50-disp-use-output-specific-mask-in-interrupt.patch
 iommu-amd-only-unmap-large-pages-from-the-first-pte.patch
-sunrpc-split-client-creation-routine-into-setup-and-registration.patch
-sunrpc-fix-a-deadlock-in-rpc_client_register.patch
 xtensa-adjust-boot-parameters-address-when-initialize_xtensa_mmu_inside_vmlinux-is-selected.patch
 thermal-cpu_cooling-fix-stub-function.patch
 mips-octeon-don-t-clobber-bootloader-data-structures.patch
diff --git a/queue-3.10/sunrpc-fix-a-deadlock-in-rpc_client_register.patch b/queue-3.10/sunrpc-fix-a-deadlock-in-rpc_client_register.patch
deleted file mode 100644 (file)
index 1e20dc9..0000000
+++ /dev/null
@@ -1,71 +0,0 @@
-From eeee245268c951262b861bc1be4e9dc812352499 Mon Sep 17 00:00:00 2001
-From: Trond Myklebust <Trond.Myklebust@netapp.com>
-Date: Wed, 10 Jul 2013 15:33:01 -0400
-Subject: SUNRPC: Fix a deadlock in rpc_client_register()
-
-From: Trond Myklebust <Trond.Myklebust@netapp.com>
-
-commit eeee245268c951262b861bc1be4e9dc812352499 upstream.
-
-Commit 384816051ca9125cd54750e59c780c2a2655fa4f (SUNRPC: fix races on
-PipeFS MOUNT notifications) introduces a regression when we call
-rpc_setup_pipedir() with RPCSEC_GSS as the auth flavour.
-
-By calling rpcauth_create() while holding the sn->pipefs_sb_lock, we
-end up deadlocking in gss_pipes_dentries_create_net().
-Fix is to register the client and release the mutex before calling
-rpcauth_create().
-
-Reported-by: Weston Andros Adamson <dros@netapp.com>
-Tested-by: Weston Andros Adamson <dros@netapp.com>
-Cc: Stanislav Kinsbursky <skinsbursky@parallels.com>
-Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-
----
- net/sunrpc/clnt.c |   16 +++++++++-------
- 1 file changed, 9 insertions(+), 7 deletions(-)
-
---- a/net/sunrpc/clnt.c
-+++ b/net/sunrpc/clnt.c
-@@ -288,7 +288,7 @@ static int rpc_client_register(const str
-       struct rpc_auth *auth;
-       struct net *net = rpc_net_ns(clnt);
-       struct super_block *pipefs_sb;
--      int err = 0;
-+      int err;
-       pipefs_sb = rpc_get_sb_net(net);
-       if (pipefs_sb) {
-@@ -297,6 +297,10 @@ static int rpc_client_register(const str
-                       goto out;
-       }
-+      rpc_register_client(clnt);
-+      if (pipefs_sb)
-+              rpc_put_sb_net(net);
-+
-       auth = rpcauth_create(args->authflavor, clnt);
-       if (IS_ERR(auth)) {
-               dprintk("RPC:       Couldn't create auth handle (flavor %u)\n",
-@@ -304,16 +308,14 @@ static int rpc_client_register(const str
-               err = PTR_ERR(auth);
-               goto err_auth;
-       }
--
--      rpc_register_client(clnt);
-+      return 0;
-+err_auth:
-+      pipefs_sb = rpc_get_sb_net(net);
-+      __rpc_clnt_remove_pipedir(clnt);
- out:
-       if (pipefs_sb)
-               rpc_put_sb_net(net);
-       return err;
--
--err_auth:
--      __rpc_clnt_remove_pipedir(clnt);
--      goto out;
- }
- static struct rpc_clnt * rpc_new_client(const struct rpc_create_args *args, struct rpc_xprt *xprt)
diff --git a/queue-3.10/sunrpc-split-client-creation-routine-into-setup-and-registration.patch b/queue-3.10/sunrpc-split-client-creation-routine-into-setup-and-registration.patch
deleted file mode 100644 (file)
index 0ab5e5f..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-From e73f4cc051199799aee4320f300f28ffb82f3eb1 Mon Sep 17 00:00:00 2001
-From: Stanislav Kinsbursky <skinsbursky@parallels.com>
-Date: Mon, 24 Jun 2013 11:52:52 +0400
-Subject: SUNRPC: split client creation routine into setup and registration
-
-From: Stanislav Kinsbursky <skinsbursky@parallels.com>
-
-commit e73f4cc051199799aee4320f300f28ffb82f3eb1 upstream.
-
-This helper moves all "registration" code to the new rpc_client_register()
-helper.
-This helper will be used later in the series to synchronize against PipeFS
-MOUNT/UMOUNT events.
-
-Signed-off-by: Stanislav Kinsbursky <skinsbursky@parallels.com>
-Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-
----
- net/sunrpc/clnt.c |   64 ++++++++++++++++++++++++++++++++----------------------
- 1 file changed, 39 insertions(+), 25 deletions(-)
-
---- a/net/sunrpc/clnt.c
-+++ b/net/sunrpc/clnt.c
-@@ -281,14 +281,47 @@ static void rpc_clnt_set_nodename(struct
-       memcpy(clnt->cl_nodename, nodename, clnt->cl_nodelen);
- }
-+static int rpc_client_register(const struct rpc_create_args *args,
-+                             struct rpc_clnt *clnt)
-+{
-+      const struct rpc_program *program = args->program;
-+      struct rpc_auth *auth;
-+      struct net *net = rpc_net_ns(clnt);
-+      struct super_block *pipefs_sb;
-+      int err = 0;
-+
-+      pipefs_sb = rpc_get_sb_net(net);
-+      if (pipefs_sb) {
-+              err = rpc_setup_pipedir(clnt, program->pipe_dir_name, pipefs_sb);
-+              if (err)
-+                      goto out;
-+      }
-+
-+      auth = rpcauth_create(args->authflavor, clnt);
-+      if (IS_ERR(auth)) {
-+              dprintk("RPC:       Couldn't create auth handle (flavor %u)\n",
-+                              args->authflavor);
-+              err = PTR_ERR(auth);
-+              goto err_auth;
-+      }
-+
-+      rpc_register_client(clnt);
-+out:
-+      if (pipefs_sb)
-+              rpc_put_sb_net(net);
-+      return err;
-+
-+err_auth:
-+      __rpc_clnt_remove_pipedir(clnt);
-+      goto out;
-+}
-+
- static struct rpc_clnt * rpc_new_client(const struct rpc_create_args *args, struct rpc_xprt *xprt)
- {
-       const struct rpc_program *program = args->program;
-       const struct rpc_version *version;
-       struct rpc_clnt         *clnt = NULL;
--      struct rpc_auth         *auth;
-       int err;
--      struct super_block *pipefs_sb;
-       /* sanity check the name before trying to print it */
-       dprintk("RPC:       creating %s client for %s (xprt %p)\n",
-@@ -347,34 +380,15 @@ static struct rpc_clnt * rpc_new_client(
-       atomic_set(&clnt->cl_count, 1);
--      pipefs_sb = rpc_get_sb_net(rpc_net_ns(clnt));
--      if (pipefs_sb) {
--              err = rpc_setup_pipedir(clnt, program->pipe_dir_name, pipefs_sb);
--              if (err)
--                      goto out_no_path;
--      }
--
--      auth = rpcauth_create(args->authflavor, clnt);
--      if (IS_ERR(auth)) {
--              dprintk("RPC:       Couldn't create auth handle (flavor %u)\n",
--                              args->authflavor);
--              err = PTR_ERR(auth);
--              goto out_no_auth;
--      }
--
-       /* save the nodename */
-       rpc_clnt_set_nodename(clnt, utsname()->nodename);
--      rpc_register_client(clnt);
--      if (pipefs_sb)
--              rpc_put_sb_net(rpc_net_ns(clnt));
-+
-+      err = rpc_client_register(args, clnt);
-+      if (err)
-+              goto out_no_path;
-       return clnt;
--out_no_auth:
--      if (pipefs_sb)
--              __rpc_clnt_remove_pipedir(clnt);
- out_no_path:
--      if (pipefs_sb)
--              rpc_put_sb_net(rpc_net_ns(clnt));
-       kfree(clnt->cl_principal);
- out_no_principal:
-       rpc_free_iostats(clnt->cl_metrics);