From: Greg Kroah-Hartman Date: Tue, 23 Jul 2013 21:41:35 +0000 (-0700) Subject: 3.10: remove to sunrpc patches X-Git-Tag: v3.10.3~9 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=3f3883e7aff094b25f65e7f9f28999b937d44e88;p=thirdparty%2Fkernel%2Fstable-queue.git 3.10: remove to sunrpc patches --- diff --git a/queue-3.10/series b/queue-3.10/series index e22608eeb43..4586fee3089 100644 --- a/queue-3.10/series +++ b/queue-3.10/series @@ -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 index 1e20dc92440..00000000000 --- a/queue-3.10/sunrpc-fix-a-deadlock-in-rpc_client_register.patch +++ /dev/null @@ -1,71 +0,0 @@ -From eeee245268c951262b861bc1be4e9dc812352499 Mon Sep 17 00:00:00 2001 -From: Trond Myklebust -Date: Wed, 10 Jul 2013 15:33:01 -0400 -Subject: SUNRPC: Fix a deadlock in rpc_client_register() - -From: Trond Myklebust - -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 -Tested-by: Weston Andros Adamson -Cc: Stanislav Kinsbursky -Signed-off-by: Trond Myklebust -Signed-off-by: Greg Kroah-Hartman - ---- - 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 index 0ab5e5f3910..00000000000 --- a/queue-3.10/sunrpc-split-client-creation-routine-into-setup-and-registration.patch +++ /dev/null @@ -1,113 +0,0 @@ -From e73f4cc051199799aee4320f300f28ffb82f3eb1 Mon Sep 17 00:00:00 2001 -From: Stanislav Kinsbursky -Date: Mon, 24 Jun 2013 11:52:52 +0400 -Subject: SUNRPC: split client creation routine into setup and registration - -From: Stanislav Kinsbursky - -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 -Signed-off-by: Trond Myklebust -Signed-off-by: Greg Kroah-Hartman - ---- - 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);