They comprise NFSRDMA fixes for 2.6.35. Thanks.

-jeff
>From 88b5fb066cdeddb7e0057a43ed44635eb4e31745 Mon Sep 17 00:00:00 2001
From: Jeff Becker <[email protected]>
Date: Wed, 9 Nov 2011 14:16:19 -0800
Subject: [PATCH] NFSRDMA: A few more patches for 2.6.35
 Signed-off-by: Jeff Becker <[email protected]>

---
 ...-the-test-for-XPRT_CONNECTING-into-xprt_c.patch |   49 ++++++++++++++++
 ...entralise-most-calls-to-svc_xprt_received.patch |   61 ++++++++++++++++++++
 2 files changed, 110 insertions(+), 0 deletions(-)
 create mode 100644 
kernel_patches/backport/2.6.35/nfsrdma-0004-SUNRPC-Move-the-test-for-XPRT_CONNECTING-into-xprt_c.patch
 create mode 100644 
kernel_patches/backport/2.6.35/nfsrdma-sunrpc-centralise-most-calls-to-svc_xprt_received.patch

diff --git 
a/kernel_patches/backport/2.6.35/nfsrdma-0004-SUNRPC-Move-the-test-for-XPRT_CONNECTING-into-xprt_c.patch
 
b/kernel_patches/backport/2.6.35/nfsrdma-0004-SUNRPC-Move-the-test-for-XPRT_CONNECTING-into-xprt_c.patch
new file mode 100644
index 0000000..5a1d1ea
--- /dev/null
+++ 
b/kernel_patches/backport/2.6.35/nfsrdma-0004-SUNRPC-Move-the-test-for-XPRT_CONNECTING-into-xprt_c.patch
@@ -0,0 +1,49 @@
+From 0b9e79431377df452348e78262dd5a3dc359eeef Mon Sep 17 00:00:00 2001
+From: Trond Myklebust <[email protected]>
+Date: Fri, 16 Apr 2010 16:41:57 -0400
+Subject: [PATCH] SUNRPC: Move the test for XPRT_CONNECTING into xprt_connect()
+
+This fixes a bug with setting xprt->stat.connect_start.
+
+Reviewed-by: Chuck Lever <[email protected]>
+Signed-off-by: Trond Myklebust <[email protected]>
+---
+diff --git a/net/sunrpc/xprtrdma/transport.c b/net/sunrpc/xprtrdma/transport.c
+index 187257b..0607b9a 100644
+--- a/net/sunrpc/xprtrdma/transport.c
++++ b/net/sunrpc/xprtrdma/transport.c
+@@ -449,21 +449,19 @@ xprt_rdma_connect(struct rpc_task *task)
+       struct rpc_xprt *xprt = (struct rpc_xprt *)task->tk_xprt;
+       struct rpcrdma_xprt *r_xprt = rpcx_to_rdmax(xprt);
+ 
+-      if (!xprt_test_and_set_connecting(xprt)) {
+-              if (r_xprt->rx_ep.rep_connected != 0) {
+-                      /* Reconnect */
+-                      schedule_delayed_work(&r_xprt->rdma_connect,
+-                              xprt->reestablish_timeout);
+-                      xprt->reestablish_timeout <<= 1;
+-                      if (xprt->reestablish_timeout > (30 * HZ))
+-                              xprt->reestablish_timeout = (30 * HZ);
+-                      else if (xprt->reestablish_timeout < (5 * HZ))
+-                              xprt->reestablish_timeout = (5 * HZ);
+-              } else {
+-                      schedule_delayed_work(&r_xprt->rdma_connect, 0);
+-                      if (!RPC_IS_ASYNC(task))
+-                              flush_scheduled_work();
+-              }
++      if (r_xprt->rx_ep.rep_connected != 0) {
++              /* Reconnect */
++              schedule_delayed_work(&r_xprt->rdma_connect,
++                      xprt->reestablish_timeout);
++              xprt->reestablish_timeout <<= 1;
++              if (xprt->reestablish_timeout > (30 * HZ))
++                      xprt->reestablish_timeout = (30 * HZ);
++              else if (xprt->reestablish_timeout < (5 * HZ))
++                      xprt->reestablish_timeout = (5 * HZ);
++      } else {
++              schedule_delayed_work(&r_xprt->rdma_connect, 0);
++              if (!RPC_IS_ASYNC(task))
++                      flush_scheduled_work();
+       }
+ }
+ 
diff --git 
a/kernel_patches/backport/2.6.35/nfsrdma-sunrpc-centralise-most-calls-to-svc_xprt_received.patch
 
b/kernel_patches/backport/2.6.35/nfsrdma-sunrpc-centralise-most-calls-to-svc_xprt_received.patch
new file mode 100644
index 0000000..dea25f7
--- /dev/null
+++ 
b/kernel_patches/backport/2.6.35/nfsrdma-sunrpc-centralise-most-calls-to-svc_xprt_received.patch
@@ -0,0 +1,61 @@
+From b48fa6b99100dc7772af3cd276035fcec9719ceb Mon Sep 17 00:00:00 2001
+From: Neil Brown <[email protected]>
+Date: Mon, 1 Mar 2010 16:51:14 +1100
+Subject: [PATCH] sunrpc: centralise most calls to svc_xprt_received
+
+svc_xprt_received must be called when ->xpo_recvfrom has finished
+receiving a message, so that the XPT_BUSY flag will be cleared and
+if necessary, requeued for further work.
+
+This call is currently made in each ->xpo_recvfrom function, often
+from multiple different points.  In each case it is the earliest point
+on a particular path where it is known that the protection provided by
+XPT_BUSY is no longer needed.
+
+However there are (still) some error paths which do not call
+svc_xprt_received, and requiring each ->xpo_recvfrom to make the call
+does not encourage robustness.
+
+So: move the svc_xprt_received call to be made just after the
+call to ->xpo_recvfrom(), and move it of the various ->xpo_recvfrom
+methods.
+
+This means that it may not be called at the earliest possible instant,
+but this is unlikely to be a measurable performance issue.
+
+Note that there are still other calls to svc_xprt_received as it is
+also needed when an xprt is newly created.
+
+Signed-off-by: NeilBrown <[email protected]>
+Signed-off-by: J. Bruce Fields <[email protected]>
+---
+diff --git a/net/sunrpc/xprtrdma/svc_rdma_recvfrom.c 
b/net/sunrpc/xprtrdma/svc_rdma_recvfrom.c
+index f92e37e..0194de8 100644
+--- a/net/sunrpc/xprtrdma/svc_rdma_recvfrom.c
++++ b/net/sunrpc/xprtrdma/svc_rdma_recvfrom.c
+@@ -566,7 +566,6 @@ static int rdma_read_complete(struct svc_rqst *rqstp,
+               ret, rqstp->rq_arg.len, rqstp->rq_arg.head[0].iov_base,
+               rqstp->rq_arg.head[0].iov_len);
+ 
+-      svc_xprt_received(rqstp->rq_xprt);
+       return ret;
+ }
+ 
+@@ -665,7 +664,6 @@ int svc_rdma_recvfrom(struct svc_rqst *rqstp)
+               rqstp->rq_arg.head[0].iov_len);
+       rqstp->rq_prot = IPPROTO_MAX;
+       svc_xprt_copy_addrs(rqstp, xprt);
+-      svc_xprt_received(xprt);
+       return ret;
+ 
+  close_out:
+@@ -678,6 +676,5 @@ int svc_rdma_recvfrom(struct svc_rqst *rqstp)
+        */
+       set_bit(XPT_CLOSE, &xprt->xpt_flags);
+ defer:
+-      svc_xprt_received(xprt);
+       return 0;
+ }
+-- 
+1.7.3.4
+
-- 
1.7.3.4

>From 3ff2138c671de1b6d9634ee148c0251285c790a1 Mon Sep 17 00:00:00 2001
From: Jeff Becker <[email protected]>
Date: Thu, 3 Nov 2011 15:17:23 -0700
Subject: [PATCH 2/2] NFSRDMA: another patch for 2.6.35
 Signed-off-by: Jeff Becker <[email protected]>

---
 ...-Fail-over-more-quickly-on-connect-errors.patch |   25 ++++++++++++++++++++
 1 files changed, 25 insertions(+), 0 deletions(-)
 create mode 100644 
kernel_patches/backport/2.6.35/nfsrdma-0005-SUNRPC-Fail-over-more-quickly-on-connect-errors.patch

diff --git 
a/kernel_patches/backport/2.6.35/nfsrdma-0005-SUNRPC-Fail-over-more-quickly-on-connect-errors.patch
 
b/kernel_patches/backport/2.6.35/nfsrdma-0005-SUNRPC-Fail-over-more-quickly-on-connect-errors.patch
new file mode 100644
index 0000000..4b0b2fc
--- /dev/null
+++ 
b/kernel_patches/backport/2.6.35/nfsrdma-0005-SUNRPC-Fail-over-more-quickly-on-connect-errors.patch
@@ -0,0 +1,25 @@
+From a8ce4a8f37fef0a09a1e920c2e09f67a80426c7e Mon Sep 17 00:00:00 2001
+From: Trond Myklebust <[email protected]>
+Date: Fri, 16 Apr 2010 16:42:12 -0400
+Subject: [PATCH] SUNRPC: Fail over more quickly on connect errors
+
+We should not allow soft tasks to wait for longer than the major timeout
+period when waiting for a reconnect to occur.
+
+Remove the field xprt->connect_timeout since it has been obsoleted by
+xprt->reestablish_timeout.
+
+Signed-off-by: Trond Myklebust <[email protected]>
+---
+diff --git a/net/sunrpc/xprtrdma/transport.c b/net/sunrpc/xprtrdma/transport.c
+index 0607b9a..3f3b38c 100644
+--- a/net/sunrpc/xprtrdma/transport.c
++++ b/net/sunrpc/xprtrdma/transport.c
+@@ -305,7 +305,6 @@ xprt_setup_rdma(struct xprt_create *args)
+       /* 60 second timeout, no retries */
+       xprt->timeout = &xprt_rdma_default_timeout;
+       xprt->bind_timeout = (60U * HZ);
+-      xprt->connect_timeout = (60U * HZ);
+       xprt->reestablish_timeout = (5U * HZ);
+       xprt->idle_timeout = (5U * 60 * HZ);
+ 
-- 
1.7.3.4

>From bdd49cadbb2031ea0339d967e145de4e24a3afb9 Mon Sep 17 00:00:00 2001
From: Jeff Becker <[email protected]>
Date: Thu, 3 Nov 2011 14:26:20 -0700
Subject: [PATCH 1/2] NFSRDMA: pull in patches for 2.6.35
 Signed-off-by: Jeff Becker <[email protected]>

---
 ...ve-duplicate-universal-address-generation.patch |   42 +++++
 ...rpc_ntop-for-constructing-transport-addre.patch |   74 +++++++++
 .../nfsrdma-0003-SUNRPC-Kill-RPC_DISPLAY_ALL.patch |   28 +++
 ...sctl-net-Remove-unused-binary-sysctl-code.patch |  168 +++++++++++++++++++
 ...ysctl-Drop-in-front-of-every-proc_handler.patch |  174 ++++++++++++++++++++
 ...-the-task-tk_bytes_sent-and-tk_rtt-to-str.patch |   24 +++
 ...a-headers-remove-sched.h-from-interrupt.h.patch |   23 +++
 ...dma-sunrpc-Clean-never-used-include-files.patch |   32 ++++
 ...move-struct-file-argument-of-proc_handler.patch |   37 ++++
 9 files changed, 602 insertions(+), 0 deletions(-)
 create mode 100644 
kernel_patches/backport/2.6.35/nfsrdma-0001-SUNRPC-Remove-duplicate-universal-address-generation.patch
 create mode 100644 
kernel_patches/backport/2.6.35/nfsrdma-0002-SUNRPC-Use-rpc_ntop-for-constructing-transport-addre.patch
 create mode 100644 
kernel_patches/backport/2.6.35/nfsrdma-0003-SUNRPC-Kill-RPC_DISPLAY_ALL.patch
 create mode 100644 
kernel_patches/backport/2.6.35/nfsrdma-0004-sysctl-net-Remove-unused-binary-sysctl-code.patch
 create mode 100644 
kernel_patches/backport/2.6.35/nfsrdma-0005-sysctl-Drop-in-front-of-every-proc_handler.patch
 create mode 100644 
kernel_patches/backport/2.6.35/nfsrdma-0006-SUNRPC-Move-the-task-tk_bytes_sent-and-tk_rtt-to-str.patch
 create mode 100644 
kernel_patches/backport/2.6.35/nfsrdma-headers-remove-sched.h-from-interrupt.h.patch
 create mode 100644 
kernel_patches/backport/2.6.35/nfsrdma-sunrpc-Clean-never-used-include-files.patch
 create mode 100644 
kernel_patches/backport/2.6.35/nfsrdma-sysctl-remove-struct-file-argument-of-proc_handler.patch

diff --git 
a/kernel_patches/backport/2.6.35/nfsrdma-0001-SUNRPC-Remove-duplicate-universal-address-generation.patch
 
b/kernel_patches/backport/2.6.35/nfsrdma-0001-SUNRPC-Remove-duplicate-universal-address-generation.patch
new file mode 100644
index 0000000..de9c3a8
--- /dev/null
+++ 
b/kernel_patches/backport/2.6.35/nfsrdma-0001-SUNRPC-Remove-duplicate-universal-address-generation.patch
@@ -0,0 +1,42 @@
+From ba809130bc260fce04141aca01ef9e068d32af2a Mon Sep 17 00:00:00 2001
+From: Chuck Lever <[email protected]>
+Date: Sun, 9 Aug 2009 15:09:35 -0400
+Subject: [PATCH] SUNRPC: Remove duplicate universal address generation
+
+RPC universal address generation is currently done in several places:
+rpcb_clnt.c, nfs4proc.c xprtsock.c, and xprtrdma.c.  Remove the
+redundant cases that convert a socket address to a universal
+address.  The nfs4proc.c case takes a pre-formatted presentation
+address string, not a socket address, so we'll leave that one.
+
+Because the new uaddr constructor uses the recently introduced
+rpc_ntop(), it now supports proper "::" shorthanding for IPv6
+addresses.  This allows the kernel to register properly formed
+universal addresses with the local rpcbind service, in _all_ cases.
+
+The kernel can now also send properly formed universal addresses in
+RPCB_GETADDR requests, and support link-local properly when
+encoding and decoding IPv6 addresses.
+
+Signed-off-by: Chuck Lever <[email protected]>
+Signed-off-by: Trond Myklebust <[email protected]>
+---
+diff --git a/net/sunrpc/xprtrdma/transport.c b/net/sunrpc/xprtrdma/transport.c
+index 1dd6123..537c210 100644
+--- a/net/sunrpc/xprtrdma/transport.c
++++ b/net/sunrpc/xprtrdma/transport.c
+@@ -202,14 +202,6 @@ xprt_rdma_format_addresses(struct rpc_xprt *xprt)
+               snprintf(buf, 8, "%4hx", ntohs(addr->sin_port));
+       xprt->address_strings[RPC_DISPLAY_HEX_PORT] = buf;
+ 
+-      buf = kzalloc(30, GFP_KERNEL);
+-      if (buf)
+-              snprintf(buf, 30, "%pI4.%u.%u",
+-                      &addr->sin_addr.s_addr,
+-                      ntohs(addr->sin_port) >> 8,
+-                      ntohs(addr->sin_port) & 0xff);
+-      xprt->address_strings[RPC_DISPLAY_UNIVERSAL_ADDR] = buf;
+-
+       /* netid */
+       xprt->address_strings[RPC_DISPLAY_NETID] = "rdma";
+ }
diff --git 
a/kernel_patches/backport/2.6.35/nfsrdma-0002-SUNRPC-Use-rpc_ntop-for-constructing-transport-addre.patch
 
b/kernel_patches/backport/2.6.35/nfsrdma-0002-SUNRPC-Use-rpc_ntop-for-constructing-transport-addre.patch
new file mode 100644
index 0000000..67d3f7b
--- /dev/null
+++ 
b/kernel_patches/backport/2.6.35/nfsrdma-0002-SUNRPC-Use-rpc_ntop-for-constructing-transport-addre.patch
@@ -0,0 +1,74 @@
+From c877b849d302d1275452af80b7221a2555dc02e1 Mon Sep 17 00:00:00 2001
+From: Chuck Lever <[email protected]>
+Date: Sun, 9 Aug 2009 15:09:36 -0400
+Subject: [PATCH] SUNRPC: Use rpc_ntop() for constructing transport address 
strings
+
+Clean up:  In addition to using the new generic rpc_ntop() and
+rpc_get_port() functions, have the RPC client compute the presentation
+address buffer sizes dynamically using kstrdup().
+
+Signed-off-by: Chuck Lever <[email protected]>
+Signed-off-by: Trond Myklebust <[email protected]>
+---
+diff --git a/net/sunrpc/xprtrdma/transport.c b/net/sunrpc/xprtrdma/transport.c
+index 537c210..5f9b867 100644
+--- a/net/sunrpc/xprtrdma/transport.c
++++ b/net/sunrpc/xprtrdma/transport.c
+@@ -168,39 +168,30 @@ static struct rpc_xprt_ops xprt_rdma_procs;      /* 
forward reference */
+ static void
+ xprt_rdma_format_addresses(struct rpc_xprt *xprt)
+ {
+-      struct sockaddr_in *addr = (struct sockaddr_in *)
++      struct sockaddr *sap = (struct sockaddr *)
+                                       &rpcx_to_rdmad(xprt).addr;
+-      char *buf;
++      struct sockaddr_in *sin = (struct sockaddr_in *)sap;
++      char buf[64];
+ 
+-      buf = kzalloc(20, GFP_KERNEL);
+-      if (buf)
+-              snprintf(buf, 20, "%pI4", &addr->sin_addr.s_addr);
+-      xprt->address_strings[RPC_DISPLAY_ADDR] = buf;
++      (void)rpc_ntop(sap, buf, sizeof(buf));
++      xprt->address_strings[RPC_DISPLAY_ADDR] = kstrdup(buf, GFP_KERNEL);
+ 
+-      buf = kzalloc(8, GFP_KERNEL);
+-      if (buf)
+-              snprintf(buf, 8, "%u", ntohs(addr->sin_port));
+-      xprt->address_strings[RPC_DISPLAY_PORT] = buf;
++      (void)snprintf(buf, sizeof(buf), "%u", rpc_get_port(sap));
++      xprt->address_strings[RPC_DISPLAY_PORT] = kstrdup(buf, GFP_KERNEL);
+ 
+       xprt->address_strings[RPC_DISPLAY_PROTO] = "rdma";
+ 
+-      buf = kzalloc(48, GFP_KERNEL);
+-      if (buf)
+-              snprintf(buf, 48, "addr=%pI4 port=%u proto=%s",
+-                      &addr->sin_addr.s_addr,
+-                      ntohs(addr->sin_port), "rdma");
+-      xprt->address_strings[RPC_DISPLAY_ALL] = buf;
+-
+-      buf = kzalloc(10, GFP_KERNEL);
+-      if (buf)
+-              snprintf(buf, 10, "%02x%02x%02x%02x",
+-                      NIPQUAD(addr->sin_addr.s_addr));
+-      xprt->address_strings[RPC_DISPLAY_HEX_ADDR] = buf;
+-
+-      buf = kzalloc(8, GFP_KERNEL);
+-      if (buf)
+-              snprintf(buf, 8, "%4hx", ntohs(addr->sin_port));
+-      xprt->address_strings[RPC_DISPLAY_HEX_PORT] = buf;
++      (void)snprintf(buf, sizeof(buf), "addr=%s port=%s proto=rdma",
++                      xprt->address_strings[RPC_DISPLAY_ADDR],
++                      xprt->address_strings[RPC_DISPLAY_PORT]);
++      xprt->address_strings[RPC_DISPLAY_ALL] = kstrdup(buf, GFP_KERNEL);
++
++      (void)snprintf(buf, sizeof(buf), "%02x%02x%02x%02x",
++                              NIPQUAD(sin->sin_addr.s_addr));
++      xprt->address_strings[RPC_DISPLAY_HEX_ADDR] = kstrdup(buf, GFP_KERNEL);
++
++      (void)snprintf(buf, sizeof(buf), "%4hx", rpc_get_port(sap));
++      xprt->address_strings[RPC_DISPLAY_HEX_PORT] = kstrdup(buf, GFP_KERNEL);
+ 
+       /* netid */
+       xprt->address_strings[RPC_DISPLAY_NETID] = "rdma";
diff --git 
a/kernel_patches/backport/2.6.35/nfsrdma-0003-SUNRPC-Kill-RPC_DISPLAY_ALL.patch 
b/kernel_patches/backport/2.6.35/nfsrdma-0003-SUNRPC-Kill-RPC_DISPLAY_ALL.patch
new file mode 100644
index 0000000..7711a04
--- /dev/null
+++ 
b/kernel_patches/backport/2.6.35/nfsrdma-0003-SUNRPC-Kill-RPC_DISPLAY_ALL.patch
@@ -0,0 +1,28 @@
+From c740eff84bcfd63c0497ef880e80171931cb8222 Mon Sep 17 00:00:00 2001
+From: Chuck Lever <[email protected]>
+Date: Sun, 9 Aug 2009 15:09:46 -0400
+Subject: [PATCH] SUNRPC: Kill RPC_DISPLAY_ALL
+
+At some point, I recall that rpc_pipe_fs used RPC_DISPLAY_ALL.
+Currently there are no uses of RPC_DISPLAY_ALL outside the transport
+modules themselves, so we can safely get rid of it.
+
+Signed-off-by: Chuck Lever <[email protected]>
+Signed-off-by: Trond Myklebust <[email protected]>
+---
+diff --git a/net/sunrpc/xprtrdma/transport.c b/net/sunrpc/xprtrdma/transport.c
+index 5f9b867..9a63f66 100644
+--- a/net/sunrpc/xprtrdma/transport.c
++++ b/net/sunrpc/xprtrdma/transport.c
+@@ -181,11 +181,6 @@ xprt_rdma_format_addresses(struct rpc_xprt *xprt)
+ 
+       xprt->address_strings[RPC_DISPLAY_PROTO] = "rdma";
+ 
+-      (void)snprintf(buf, sizeof(buf), "addr=%s port=%s proto=rdma",
+-                      xprt->address_strings[RPC_DISPLAY_ADDR],
+-                      xprt->address_strings[RPC_DISPLAY_PORT]);
+-      xprt->address_strings[RPC_DISPLAY_ALL] = kstrdup(buf, GFP_KERNEL);
+-
+       (void)snprintf(buf, sizeof(buf), "%02x%02x%02x%02x",
+                               NIPQUAD(sin->sin_addr.s_addr));
+       xprt->address_strings[RPC_DISPLAY_HEX_ADDR] = kstrdup(buf, GFP_KERNEL);
diff --git 
a/kernel_patches/backport/2.6.35/nfsrdma-0004-sysctl-net-Remove-unused-binary-sysctl-code.patch
 
b/kernel_patches/backport/2.6.35/nfsrdma-0004-sysctl-net-Remove-unused-binary-sysctl-code.patch
new file mode 100644
index 0000000..ccee16c
--- /dev/null
+++ 
b/kernel_patches/backport/2.6.35/nfsrdma-0004-sysctl-net-Remove-unused-binary-sysctl-code.patch
@@ -0,0 +1,168 @@
+From f8572d8f2a2ba75408b97dc24ef47c83671795d7 Mon Sep 17 00:00:00 2001
+From: Eric W. Biederman <[email protected]>
+Date: Thu, 5 Nov 2009 13:32:03 -0800
+Subject: [PATCH] sysctl net: Remove unused binary sysctl code
+
+Now that sys_sysctl is a compatiblity wrapper around /proc/sys
+all sysctl strategy routines, and all ctl_name and strategy
+entries in the sysctl tables are unused, and can be
+revmoed.
+
+In addition neigh_sysctl_register has been modified to no longer
+take a strategy argument and it's callers have been modified not
+to pass one.
+
+Cc: "David Miller" <[email protected]>
+Cc: Hideaki YOSHIFUJI <[email protected]>
+Cc: [email protected]
+Signed-off-by: Eric W. Biederman <[email protected]>
+---
+diff --git a/net/sunrpc/xprtrdma/svc_rdma.c b/net/sunrpc/xprtrdma/svc_rdma.c
+index 35fb68b..678cee2 100644
+--- a/net/sunrpc/xprtrdma/svc_rdma.c
++++ b/net/sunrpc/xprtrdma/svc_rdma.c
+@@ -121,7 +121,6 @@ static ctl_table svcrdma_parm_table[] = {
+               .maxlen         = sizeof(unsigned int),
+               .mode           = 0644,
+               .proc_handler   = &proc_dointvec_minmax,
+-              .strategy       = &sysctl_intvec,
+               .extra1         = &min_max_requests,
+               .extra2         = &max_max_requests
+       },
+@@ -131,7 +130,6 @@ static ctl_table svcrdma_parm_table[] = {
+               .maxlen         = sizeof(unsigned int),
+               .mode           = 0644,
+               .proc_handler   = &proc_dointvec_minmax,
+-              .strategy       = &sysctl_intvec,
+               .extra1         = &min_max_inline,
+               .extra2         = &max_max_inline
+       },
+@@ -141,7 +139,6 @@ static ctl_table svcrdma_parm_table[] = {
+               .maxlen         = sizeof(unsigned int),
+               .mode           = 0644,
+               .proc_handler   = &proc_dointvec_minmax,
+-              .strategy       = &sysctl_intvec,
+               .extra1         = &min_ord,
+               .extra2         = &max_ord,
+       },
+@@ -209,9 +206,7 @@ static ctl_table svcrdma_parm_table[] = {
+               .mode           = 0644,
+               .proc_handler   = &read_reset_stat,
+       },
+-      {
+-              .ctl_name = 0,
+-      },
++      { },
+ };
+ 
+ static ctl_table svcrdma_table[] = {
+@@ -220,21 +215,16 @@ static ctl_table svcrdma_table[] = {
+               .mode           = 0555,
+               .child          = svcrdma_parm_table
+       },
+-      {
+-              .ctl_name = 0,
+-      },
++      { },
+ };
+ 
+ static ctl_table svcrdma_root_table[] = {
+       {
+-              .ctl_name       = CTL_SUNRPC,
+               .procname       = "sunrpc",
+               .mode           = 0555,
+               .child          = svcrdma_table
+       },
+-      {
+-              .ctl_name = 0,
+-      },
++      { },
+ };
+ 
+ void svc_rdma_cleanup(void)
+diff --git a/net/sunrpc/xprtrdma/transport.c b/net/sunrpc/xprtrdma/transport.c
+index 9a63f66..4768160 100644
+--- a/net/sunrpc/xprtrdma/transport.c
++++ b/net/sunrpc/xprtrdma/transport.c
+@@ -86,79 +86,63 @@ static struct ctl_table_header *sunrpc_table_header;
+ 
+ static ctl_table xr_tunables_table[] = {
+       {
+-              .ctl_name       = CTL_UNNUMBERED,
+               .procname       = "rdma_slot_table_entries",
+               .data           = &xprt_rdma_slot_table_entries,
+               .maxlen         = sizeof(unsigned int),
+               .mode           = 0644,
+               .proc_handler   = &proc_dointvec_minmax,
+-              .strategy       = &sysctl_intvec,
+               .extra1         = &min_slot_table_size,
+               .extra2         = &max_slot_table_size
+       },
+       {
+-              .ctl_name       = CTL_UNNUMBERED,
+               .procname       = "rdma_max_inline_read",
+               .data           = &xprt_rdma_max_inline_read,
+               .maxlen         = sizeof(unsigned int),
+               .mode           = 0644,
+               .proc_handler   = &proc_dointvec,
+-              .strategy       = &sysctl_intvec,
+       },
+       {
+-              .ctl_name       = CTL_UNNUMBERED,
+               .procname       = "rdma_max_inline_write",
+               .data           = &xprt_rdma_max_inline_write,
+               .maxlen         = sizeof(unsigned int),
+               .mode           = 0644,
+               .proc_handler   = &proc_dointvec,
+-              .strategy       = &sysctl_intvec,
+       },
+       {
+-              .ctl_name       = CTL_UNNUMBERED,
+               .procname       = "rdma_inline_write_padding",
+               .data           = &xprt_rdma_inline_write_padding,
+               .maxlen         = sizeof(unsigned int),
+               .mode           = 0644,
+               .proc_handler   = &proc_dointvec_minmax,
+-              .strategy       = &sysctl_intvec,
+               .extra1         = &zero,
+               .extra2         = &max_padding,
+       },
+       {
+-              .ctl_name       = CTL_UNNUMBERED,
+               .procname       = "rdma_memreg_strategy",
+               .data           = &xprt_rdma_memreg_strategy,
+               .maxlen         = sizeof(unsigned int),
+               .mode           = 0644,
+               .proc_handler   = &proc_dointvec_minmax,
+-              .strategy       = &sysctl_intvec,
+               .extra1         = &min_memreg,
+               .extra2         = &max_memreg,
+       },
+       {
+-              .ctl_name       = CTL_UNNUMBERED,
+               .procname       = "rdma_pad_optimize",
+               .data           = &xprt_rdma_pad_optimize,
+               .maxlen         = sizeof(unsigned int),
+               .mode           = 0644,
+               .proc_handler   = &proc_dointvec,
+       },
+-      {
+-              .ctl_name = 0,
+-      },
++      { },
+ };
+ 
+ static ctl_table sunrpc_table[] = {
+       {
+-              .ctl_name       = CTL_SUNRPC,
+               .procname       = "sunrpc",
+               .mode           = 0555,
+               .child          = xr_tunables_table
+       },
+-      {
+-              .ctl_name = 0,
+-      },
++      { },
+ };
+ 
+ #endif
diff --git 
a/kernel_patches/backport/2.6.35/nfsrdma-0005-sysctl-Drop-in-front-of-every-proc_handler.patch
 
b/kernel_patches/backport/2.6.35/nfsrdma-0005-sysctl-Drop-in-front-of-every-proc_handler.patch
new file mode 100644
index 0000000..3bb4587
--- /dev/null
+++ 
b/kernel_patches/backport/2.6.35/nfsrdma-0005-sysctl-Drop-in-front-of-every-proc_handler.patch
@@ -0,0 +1,174 @@
+From 6d4561110a3e9fa742aeec6717248a491dfb1878 Mon Sep 17 00:00:00 2001
+From: Eric W. Biederman <[email protected]>
+Date: Mon, 16 Nov 2009 03:11:48 -0800
+Subject: [PATCH] sysctl: Drop & in front of every proc_handler.
+
+For consistency drop & in front of every proc_handler.  Explicity
+taking the address is unnecessary and it prevents optimizations
+like stubbing the proc_handlers to NULL.
+
+Cc: Alexey Dobriyan <[email protected]>
+Cc: Ingo Molnar <[email protected]>
+Cc: Joe Perches <[email protected]>
+Signed-off-by: Eric W. Biederman <[email protected]>
+---
+diff --git a/net/sunrpc/xprtrdma/svc_rdma.c b/net/sunrpc/xprtrdma/svc_rdma.c
+index 678cee2..5b8a8ff 100644
+--- a/net/sunrpc/xprtrdma/svc_rdma.c
++++ b/net/sunrpc/xprtrdma/svc_rdma.c
+@@ -120,7 +120,7 @@ static ctl_table svcrdma_parm_table[] = {
+               .data           = &svcrdma_max_requests,
+               .maxlen         = sizeof(unsigned int),
+               .mode           = 0644,
+-              .proc_handler   = &proc_dointvec_minmax,
++              .proc_handler   = proc_dointvec_minmax,
+               .extra1         = &min_max_requests,
+               .extra2         = &max_max_requests
+       },
+@@ -129,7 +129,7 @@ static ctl_table svcrdma_parm_table[] = {
+               .data           = &svcrdma_max_req_size,
+               .maxlen         = sizeof(unsigned int),
+               .mode           = 0644,
+-              .proc_handler   = &proc_dointvec_minmax,
++              .proc_handler   = proc_dointvec_minmax,
+               .extra1         = &min_max_inline,
+               .extra2         = &max_max_inline
+       },
+@@ -138,7 +138,7 @@ static ctl_table svcrdma_parm_table[] = {
+               .data           = &svcrdma_ord,
+               .maxlen         = sizeof(unsigned int),
+               .mode           = 0644,
+-              .proc_handler   = &proc_dointvec_minmax,
++              .proc_handler   = proc_dointvec_minmax,
+               .extra1         = &min_ord,
+               .extra2         = &max_ord,
+       },
+@@ -148,63 +148,63 @@ static ctl_table svcrdma_parm_table[] = {
+               .data           = &rdma_stat_read,
+               .maxlen         = sizeof(atomic_t),
+               .mode           = 0644,
+-              .proc_handler   = &read_reset_stat,
++              .proc_handler   = read_reset_stat,
+       },
+       {
+               .procname       = "rdma_stat_recv",
+               .data           = &rdma_stat_recv,
+               .maxlen         = sizeof(atomic_t),
+               .mode           = 0644,
+-              .proc_handler   = &read_reset_stat,
++              .proc_handler   = read_reset_stat,
+       },
+       {
+               .procname       = "rdma_stat_write",
+               .data           = &rdma_stat_write,
+               .maxlen         = sizeof(atomic_t),
+               .mode           = 0644,
+-              .proc_handler   = &read_reset_stat,
++              .proc_handler   = read_reset_stat,
+       },
+       {
+               .procname       = "rdma_stat_sq_starve",
+               .data           = &rdma_stat_sq_starve,
+               .maxlen         = sizeof(atomic_t),
+               .mode           = 0644,
+-              .proc_handler   = &read_reset_stat,
++              .proc_handler   = read_reset_stat,
+       },
+       {
+               .procname       = "rdma_stat_rq_starve",
+               .data           = &rdma_stat_rq_starve,
+               .maxlen         = sizeof(atomic_t),
+               .mode           = 0644,
+-              .proc_handler   = &read_reset_stat,
++              .proc_handler   = read_reset_stat,
+       },
+       {
+               .procname       = "rdma_stat_rq_poll",
+               .data           = &rdma_stat_rq_poll,
+               .maxlen         = sizeof(atomic_t),
+               .mode           = 0644,
+-              .proc_handler   = &read_reset_stat,
++              .proc_handler   = read_reset_stat,
+       },
+       {
+               .procname       = "rdma_stat_rq_prod",
+               .data           = &rdma_stat_rq_prod,
+               .maxlen         = sizeof(atomic_t),
+               .mode           = 0644,
+-              .proc_handler   = &read_reset_stat,
++              .proc_handler   = read_reset_stat,
+       },
+       {
+               .procname       = "rdma_stat_sq_poll",
+               .data           = &rdma_stat_sq_poll,
+               .maxlen         = sizeof(atomic_t),
+               .mode           = 0644,
+-              .proc_handler   = &read_reset_stat,
++              .proc_handler   = read_reset_stat,
+       },
+       {
+               .procname       = "rdma_stat_sq_prod",
+               .data           = &rdma_stat_sq_prod,
+               .maxlen         = sizeof(atomic_t),
+               .mode           = 0644,
+-              .proc_handler   = &read_reset_stat,
++              .proc_handler   = read_reset_stat,
+       },
+       { },
+ };
+diff --git a/net/sunrpc/xprtrdma/transport.c b/net/sunrpc/xprtrdma/transport.c
+index 4768160..7018eef 100644
+--- a/net/sunrpc/xprtrdma/transport.c
++++ b/net/sunrpc/xprtrdma/transport.c
+@@ -90,7 +90,7 @@ static ctl_table xr_tunables_table[] = {
+               .data           = &xprt_rdma_slot_table_entries,
+               .maxlen         = sizeof(unsigned int),
+               .mode           = 0644,
+-              .proc_handler   = &proc_dointvec_minmax,
++              .proc_handler   = proc_dointvec_minmax,
+               .extra1         = &min_slot_table_size,
+               .extra2         = &max_slot_table_size
+       },
+@@ -99,21 +99,21 @@ static ctl_table xr_tunables_table[] = {
+               .data           = &xprt_rdma_max_inline_read,
+               .maxlen         = sizeof(unsigned int),
+               .mode           = 0644,
+-              .proc_handler   = &proc_dointvec,
++              .proc_handler   = proc_dointvec,
+       },
+       {
+               .procname       = "rdma_max_inline_write",
+               .data           = &xprt_rdma_max_inline_write,
+               .maxlen         = sizeof(unsigned int),
+               .mode           = 0644,
+-              .proc_handler   = &proc_dointvec,
++              .proc_handler   = proc_dointvec,
+       },
+       {
+               .procname       = "rdma_inline_write_padding",
+               .data           = &xprt_rdma_inline_write_padding,
+               .maxlen         = sizeof(unsigned int),
+               .mode           = 0644,
+-              .proc_handler   = &proc_dointvec_minmax,
++              .proc_handler   = proc_dointvec_minmax,
+               .extra1         = &zero,
+               .extra2         = &max_padding,
+       },
+@@ -122,7 +122,7 @@ static ctl_table xr_tunables_table[] = {
+               .data           = &xprt_rdma_memreg_strategy,
+               .maxlen         = sizeof(unsigned int),
+               .mode           = 0644,
+-              .proc_handler   = &proc_dointvec_minmax,
++              .proc_handler   = proc_dointvec_minmax,
+               .extra1         = &min_memreg,
+               .extra2         = &max_memreg,
+       },
+@@ -131,7 +131,7 @@ static ctl_table xr_tunables_table[] = {
+               .data           = &xprt_rdma_pad_optimize,
+               .maxlen         = sizeof(unsigned int),
+               .mode           = 0644,
+-              .proc_handler   = &proc_dointvec,
++              .proc_handler   = proc_dointvec,
+       },
+       { },
+ };
diff --git 
a/kernel_patches/backport/2.6.35/nfsrdma-0006-SUNRPC-Move-the-task-tk_bytes_sent-and-tk_rtt-to-str.patch
 
b/kernel_patches/backport/2.6.35/nfsrdma-0006-SUNRPC-Move-the-task-tk_bytes_sent-and-tk_rtt-to-str.patch
new file mode 100644
index 0000000..148aba1
--- /dev/null
+++ 
b/kernel_patches/backport/2.6.35/nfsrdma-0006-SUNRPC-Move-the-task-tk_bytes_sent-and-tk_rtt-to-str.patch
@@ -0,0 +1,24 @@
+From d60dbb20a74c2cfa142be0a34dac3c6547ea086c Mon Sep 17 00:00:00 2001
+From: Trond Myklebust <[email protected]>
+Date: Thu, 13 May 2010 12:51:49 -0400
+Subject: [PATCH] SUNRPC: Move the task->tk_bytes_sent and tk_rtt to struct 
rpc_rqst
+
+It seems strange to maintain stats for bytes_sent in one structure, and
+bytes received in another. Try to assemble all the RPC request-related
+stats in struct rpc_rqst
+
+Signed-off-by: Trond Myklebust <[email protected]>
+---
+diff --git a/net/sunrpc/xprtrdma/transport.c b/net/sunrpc/xprtrdma/transport.c
+index 3f3b38c..a85e866 100644
+--- a/net/sunrpc/xprtrdma/transport.c
++++ b/net/sunrpc/xprtrdma/transport.c
+@@ -674,7 +674,7 @@ xprt_rdma_send_request(struct rpc_task *task)
+       if (rpcrdma_ep_post(&r_xprt->rx_ia, &r_xprt->rx_ep, req))
+               goto drop_connection;
+ 
+-      task->tk_bytes_sent += rqst->rq_snd_buf.len;
++      rqst->rq_xmit_bytes_sent += rqst->rq_snd_buf.len;
+       rqst->rq_bytes_sent = 0;
+       return 0;
+ 
diff --git 
a/kernel_patches/backport/2.6.35/nfsrdma-headers-remove-sched.h-from-interrupt.h.patch
 
b/kernel_patches/backport/2.6.35/nfsrdma-headers-remove-sched.h-from-interrupt.h.patch
new file mode 100644
index 0000000..cb430ca
--- /dev/null
+++ 
b/kernel_patches/backport/2.6.35/nfsrdma-headers-remove-sched.h-from-interrupt.h.patch
@@ -0,0 +1,23 @@
+From d43c36dc6b357fa1806800f18aa30123c747a6d1 Mon Sep 17 00:00:00 2001
+From: Alexey Dobriyan <[email protected]>
+Date: Wed, 7 Oct 2009 17:09:06 +0400
+Subject: [PATCH] headers: remove sched.h from interrupt.h
+
+After m68k's task_thread_info() doesn't refer to current,
+it's possible to remove sched.h from interrupt.h and not break m68k!
+Many thanks to Heiko Carstens for allowing this.
+
+Signed-off-by: Alexey Dobriyan <[email protected]>
+---
+diff --git a/net/sunrpc/xprtrdma/svc_rdma_transport.c 
b/net/sunrpc/xprtrdma/svc_rdma_transport.c
+index 0cf5e8c..3fa5751 100644
+--- a/net/sunrpc/xprtrdma/svc_rdma_transport.c
++++ b/net/sunrpc/xprtrdma/svc_rdma_transport.c
+@@ -42,6 +42,7 @@
+ #include <linux/sunrpc/svc_xprt.h>
+ #include <linux/sunrpc/debug.h>
+ #include <linux/sunrpc/rpc_rdma.h>
++#include <linux/sched.h>
+ #include <linux/spinlock.h>
+ #include <rdma/ib_verbs.h>
+ #include <rdma/rdma_cm.h>
diff --git 
a/kernel_patches/backport/2.6.35/nfsrdma-sunrpc-Clean-never-used-include-files.patch
 
b/kernel_patches/backport/2.6.35/nfsrdma-sunrpc-Clean-never-used-include-files.patch
new file mode 100644
index 0000000..8787238
--- /dev/null
+++ 
b/kernel_patches/backport/2.6.35/nfsrdma-sunrpc-Clean-never-used-include-files.patch
@@ -0,0 +1,32 @@
+From a600ffcbb3743cf1296bee2a41d4824c719d7181 Mon Sep 17 00:00:00 2001
+From: Boaz Harrosh <[email protected]>
+Date: Thu, 3 Dec 2009 20:28:35 +0200
+Subject: [PATCH] sunrpc: Clean never used include files
+
+Remove include of two headers never used by this file.
+Doing so exposed a missing #include <linux/types.h> in
+include/linux/sunrpc/rpc_rdma.h.
+
+I did not see any other users dependency but if exist they
+should be fixed since these headers are totally irrelevant
+to here.
+
+Signed-off-by: Boaz Harrosh <[email protected]>
+Signed-off-by: J. Bruce Fields <[email protected]>
+---
+diff --git a/include/linux/sunrpc/rpc_rdma.h b/include/linux/sunrpc/rpc_rdma.h
+index 87b895d..b78f16b 100644
+--- a/include/linux/sunrpc/rpc_rdma.h
++++ b/include/linux/sunrpc/rpc_rdma.h
+@@ -40,6 +40,8 @@
+ #ifndef _LINUX_SUNRPC_RPC_RDMA_H
+ #define _LINUX_SUNRPC_RPC_RDMA_H
+ 
++#include <linux/types.h>
++
+ struct rpcrdma_segment {
+       __be32 rs_handle;       /* Registered memory handle */
+       __be32 rs_length;       /* Length of the chunk in bytes */
+-- 
+1.7.3.4
+
diff --git 
a/kernel_patches/backport/2.6.35/nfsrdma-sysctl-remove-struct-file-argument-of-proc_handler.patch
 
b/kernel_patches/backport/2.6.35/nfsrdma-sysctl-remove-struct-file-argument-of-proc_handler.patch
new file mode 100644
index 0000000..fa3793a
--- /dev/null
+++ 
b/kernel_patches/backport/2.6.35/nfsrdma-sysctl-remove-struct-file-argument-of-proc_handler.patch
@@ -0,0 +1,37 @@
+From 8d65af789f3e2cf4cfbdbf71a0f7a61ebcd41d38 Mon Sep 17 00:00:00 2001
+From: Alexey Dobriyan <[email protected]>
+Date: Wed, 23 Sep 2009 15:57:19 -0700
+Subject: [PATCH] sysctl: remove "struct file *" argument of ->proc_handler
+
+It's unused.
+
+It isn't needed -- read or write flag is already passed and sysctl
+shouldn't care about the rest.
+
+It _was_ used in two places at arch/frv for some reason.
+
+Signed-off-by: Alexey Dobriyan <[email protected]>
+Cc: David Howells <[email protected]>
+Cc: "Eric W. Biederman" <[email protected]>
+Cc: Al Viro <[email protected]>
+Cc: Ralf Baechle <[email protected]>
+Cc: Martin Schwidefsky <[email protected]>
+Cc: Ingo Molnar <[email protected]>
+Cc: "David S. Miller" <[email protected]>
+Cc: James Morris <[email protected]>
+Signed-off-by: Andrew Morton <[email protected]>
+Signed-off-by: Linus Torvalds <[email protected]>
+---
+diff --git a/net/sunrpc/xprtrdma/svc_rdma.c b/net/sunrpc/xprtrdma/svc_rdma.c
+index 8710117..35fb68b 100644
+--- a/net/sunrpc/xprtrdma/svc_rdma.c
++++ b/net/sunrpc/xprtrdma/svc_rdma.c
+@@ -80,7 +80,7 @@ struct kmem_cache *svc_rdma_ctxt_cachep;
+  * current value.
+  */
+ static int read_reset_stat(ctl_table *table, int write,
+-                         struct file *filp, void __user *buffer, size_t *lenp,
++                         void __user *buffer, size_t *lenp,
+                          loff_t *ppos)
+ {
+       atomic_t *stat = (atomic_t *)table->data;
-- 
1.7.3.4

_______________________________________________
ewg mailing list
[email protected]
http://lists.openfabrics.org/cgi-bin/mailman/listinfo/ewg

Reply via email to