[ewg] [PATCH] NFS-RDMA: No proc entries for svc_rdma on RHEL backports

Jon Mason jon at opengridcomputing.com
Thu Apr 9 11:52:10 PDT 2009


The /proc entries for svc_rdma are not being listed due to their
declarations lacking a .ctl_name definition.

Signed-Off-By: Jon Mason <jon at opengridcomputing.com>

diff --git a/kernel_patches/backport/2.6.18-EL5.1/rnfs_fs.patch b/kernel_patches/backport/2.6.18-EL5.1/rnfs_fs.patch
index 5bcc84c..a7687ad 100644
--- a/kernel_patches/backport/2.6.18-EL5.1/rnfs_fs.patch
+++ b/kernel_patches/backport/2.6.18-EL5.1/rnfs_fs.patch
@@ -2731,3 +2731,111 @@ index 6fb493c..761ad29 100644
  	/*
  	 * Destroy queued, but not processed read completions. Note
  	 * that this cleanup has to be done before destroying the
+diff --git a/net/sunrpc/xprtrdma/svc_rdma.c b/net/sunrpc/xprtrdma/svc_rdma.c
+index 8710117..ce94fa4 100644
+--- a/net/sunrpc/xprtrdma/svc_rdma.c
++++ b/net/sunrpc/xprtrdma/svc_rdma.c
+@@ -116,6 +116,7 @@ static int read_reset_stat(ctl_table *table, int write,
+ static struct ctl_table_header *svcrdma_table_header;
+ static ctl_table svcrdma_parm_table[] = {
+ 	{
++		.ctl_name	= CTL_UNNUMBERED,
+ 		.procname	= "max_requests",
+ 		.data		= &svcrdma_max_requests,
+ 		.maxlen		= sizeof(unsigned int),
+@@ -126,6 +127,7 @@ static ctl_table svcrdma_parm_table[] = {
+ 		.extra2		= &max_max_requests
+ 	},
+ 	{
++		.ctl_name	= CTL_UNNUMBERED,
+ 		.procname	= "max_req_size",
+ 		.data		= &svcrdma_max_req_size,
+ 		.maxlen		= sizeof(unsigned int),
+@@ -136,6 +138,7 @@ static ctl_table svcrdma_parm_table[] = {
+ 		.extra2		= &max_max_inline
+ 	},
+ 	{
++		.ctl_name	= CTL_UNNUMBERED,
+ 		.procname	= "max_outbound_read_requests",
+ 		.data		= &svcrdma_ord,
+ 		.maxlen		= sizeof(unsigned int),
+@@ -147,6 +150,7 @@ static ctl_table svcrdma_parm_table[] = {
+ 	},
+ 
+ 	{
++		.ctl_name	= CTL_UNNUMBERED,
+ 		.procname	= "rdma_stat_read",
+ 		.data		= &rdma_stat_read,
+ 		.maxlen		= sizeof(atomic_t),
+@@ -154,6 +158,7 @@ static ctl_table svcrdma_parm_table[] = {
+ 		.proc_handler	= &read_reset_stat,
+ 	},
+ 	{
++		.ctl_name	= CTL_UNNUMBERED,
+ 		.procname	= "rdma_stat_recv",
+ 		.data		= &rdma_stat_recv,
+ 		.maxlen		= sizeof(atomic_t),
+@@ -161,6 +166,7 @@ static ctl_table svcrdma_parm_table[] = {
+ 		.proc_handler	= &read_reset_stat,
+ 	},
+ 	{
++		.ctl_name	= CTL_UNNUMBERED,
+ 		.procname	= "rdma_stat_write",
+ 		.data		= &rdma_stat_write,
+ 		.maxlen		= sizeof(atomic_t),
+@@ -168,6 +174,7 @@ static ctl_table svcrdma_parm_table[] = {
+ 		.proc_handler	= &read_reset_stat,
+ 	},
+ 	{
++		.ctl_name	= CTL_UNNUMBERED,
+ 		.procname	= "rdma_stat_sq_starve",
+ 		.data		= &rdma_stat_sq_starve,
+ 		.maxlen		= sizeof(atomic_t),
+@@ -175,6 +182,7 @@ static ctl_table svcrdma_parm_table[] = {
+ 		.proc_handler	= &read_reset_stat,
+ 	},
+ 	{
++		.ctl_name	= CTL_UNNUMBERED,
+ 		.procname	= "rdma_stat_rq_starve",
+ 		.data		= &rdma_stat_rq_starve,
+ 		.maxlen		= sizeof(atomic_t),
+@@ -182,6 +190,7 @@ static ctl_table svcrdma_parm_table[] = {
+ 		.proc_handler	= &read_reset_stat,
+ 	},
+ 	{
++		.ctl_name	= CTL_UNNUMBERED,
+ 		.procname	= "rdma_stat_rq_poll",
+ 		.data		= &rdma_stat_rq_poll,
+ 		.maxlen		= sizeof(atomic_t),
+@@ -189,6 +198,7 @@ static ctl_table svcrdma_parm_table[] = {
+ 		.proc_handler	= &read_reset_stat,
+ 	},
+ 	{
++		.ctl_name	= CTL_UNNUMBERED,
+ 		.procname	= "rdma_stat_rq_prod",
+ 		.data		= &rdma_stat_rq_prod,
+ 		.maxlen		= sizeof(atomic_t),
+@@ -196,6 +206,7 @@ static ctl_table svcrdma_parm_table[] = {
+ 		.proc_handler	= &read_reset_stat,
+ 	},
+ 	{
++		.ctl_name	= CTL_UNNUMBERED,
+ 		.procname	= "rdma_stat_sq_poll",
+ 		.data		= &rdma_stat_sq_poll,
+ 		.maxlen		= sizeof(atomic_t),
+@@ -203,6 +214,7 @@ static ctl_table svcrdma_parm_table[] = {
+ 		.proc_handler	= &read_reset_stat,
+ 	},
+ 	{
++		.ctl_name	= CTL_UNNUMBERED,
+ 		.procname	= "rdma_stat_sq_prod",
+ 		.data		= &rdma_stat_sq_prod,
+ 		.maxlen		= sizeof(atomic_t),
+@@ -216,6 +228,7 @@ static ctl_table svcrdma_parm_table[] = {
+ 
+ static ctl_table svcrdma_table[] = {
+ 	{
++		.ctl_name	= CTL_UNNUMBERED,
+ 		.procname	= "svc_rdma",
+ 		.mode		= 0555,
+ 		.child		= svcrdma_parm_table
diff --git a/kernel_patches/backport/2.6.18-EL5.2/rnfs_fs.patch b/kernel_patches/backport/2.6.18-EL5.2/rnfs_fs.patch
index 7610c66..1d6512f 100644
--- a/kernel_patches/backport/2.6.18-EL5.2/rnfs_fs.patch
+++ b/kernel_patches/backport/2.6.18-EL5.2/rnfs_fs.patch
@@ -2698,3 +2698,111 @@ index 6fb493c..761ad29 100644
  	/*
  	 * Destroy queued, but not processed read completions. Note
  	 * that this cleanup has to be done before destroying the
+diff --git a/net/sunrpc/xprtrdma/svc_rdma.c b/net/sunrpc/xprtrdma/svc_rdma.c
+index 8710117..ce94fa4 100644
+--- a/net/sunrpc/xprtrdma/svc_rdma.c
++++ b/net/sunrpc/xprtrdma/svc_rdma.c
+@@ -116,6 +116,7 @@ static int read_reset_stat(ctl_table *table, int write,
+ static struct ctl_table_header *svcrdma_table_header;
+ static ctl_table svcrdma_parm_table[] = {
+ 	{
++		.ctl_name	= CTL_UNNUMBERED,
+ 		.procname	= "max_requests",
+ 		.data		= &svcrdma_max_requests,
+ 		.maxlen		= sizeof(unsigned int),
+@@ -126,6 +127,7 @@ static ctl_table svcrdma_parm_table[] = {
+ 		.extra2		= &max_max_requests
+ 	},
+ 	{
++		.ctl_name	= CTL_UNNUMBERED,
+ 		.procname	= "max_req_size",
+ 		.data		= &svcrdma_max_req_size,
+ 		.maxlen		= sizeof(unsigned int),
+@@ -136,6 +138,7 @@ static ctl_table svcrdma_parm_table[] = {
+ 		.extra2		= &max_max_inline
+ 	},
+ 	{
++		.ctl_name	= CTL_UNNUMBERED,
+ 		.procname	= "max_outbound_read_requests",
+ 		.data		= &svcrdma_ord,
+ 		.maxlen		= sizeof(unsigned int),
+@@ -147,6 +150,7 @@ static ctl_table svcrdma_parm_table[] = {
+ 	},
+ 
+ 	{
++		.ctl_name	= CTL_UNNUMBERED,
+ 		.procname	= "rdma_stat_read",
+ 		.data		= &rdma_stat_read,
+ 		.maxlen		= sizeof(atomic_t),
+@@ -154,6 +158,7 @@ static ctl_table svcrdma_parm_table[] = {
+ 		.proc_handler	= &read_reset_stat,
+ 	},
+ 	{
++		.ctl_name	= CTL_UNNUMBERED,
+ 		.procname	= "rdma_stat_recv",
+ 		.data		= &rdma_stat_recv,
+ 		.maxlen		= sizeof(atomic_t),
+@@ -161,6 +166,7 @@ static ctl_table svcrdma_parm_table[] = {
+ 		.proc_handler	= &read_reset_stat,
+ 	},
+ 	{
++		.ctl_name	= CTL_UNNUMBERED,
+ 		.procname	= "rdma_stat_write",
+ 		.data		= &rdma_stat_write,
+ 		.maxlen		= sizeof(atomic_t),
+@@ -168,6 +174,7 @@ static ctl_table svcrdma_parm_table[] = {
+ 		.proc_handler	= &read_reset_stat,
+ 	},
+ 	{
++		.ctl_name	= CTL_UNNUMBERED,
+ 		.procname	= "rdma_stat_sq_starve",
+ 		.data		= &rdma_stat_sq_starve,
+ 		.maxlen		= sizeof(atomic_t),
+@@ -175,6 +182,7 @@ static ctl_table svcrdma_parm_table[] = {
+ 		.proc_handler	= &read_reset_stat,
+ 	},
+ 	{
++		.ctl_name	= CTL_UNNUMBERED,
+ 		.procname	= "rdma_stat_rq_starve",
+ 		.data		= &rdma_stat_rq_starve,
+ 		.maxlen		= sizeof(atomic_t),
+@@ -182,6 +190,7 @@ static ctl_table svcrdma_parm_table[] = {
+ 		.proc_handler	= &read_reset_stat,
+ 	},
+ 	{
++		.ctl_name	= CTL_UNNUMBERED,
+ 		.procname	= "rdma_stat_rq_poll",
+ 		.data		= &rdma_stat_rq_poll,
+ 		.maxlen		= sizeof(atomic_t),
+@@ -189,6 +198,7 @@ static ctl_table svcrdma_parm_table[] = {
+ 		.proc_handler	= &read_reset_stat,
+ 	},
+ 	{
++		.ctl_name	= CTL_UNNUMBERED,
+ 		.procname	= "rdma_stat_rq_prod",
+ 		.data		= &rdma_stat_rq_prod,
+ 		.maxlen		= sizeof(atomic_t),
+@@ -196,6 +206,7 @@ static ctl_table svcrdma_parm_table[] = {
+ 		.proc_handler	= &read_reset_stat,
+ 	},
+ 	{
++		.ctl_name	= CTL_UNNUMBERED,
+ 		.procname	= "rdma_stat_sq_poll",
+ 		.data		= &rdma_stat_sq_poll,
+ 		.maxlen		= sizeof(atomic_t),
+@@ -203,6 +214,7 @@ static ctl_table svcrdma_parm_table[] = {
+ 		.proc_handler	= &read_reset_stat,
+ 	},
+ 	{
++		.ctl_name	= CTL_UNNUMBERED,
+ 		.procname	= "rdma_stat_sq_prod",
+ 		.data		= &rdma_stat_sq_prod,
+ 		.maxlen		= sizeof(atomic_t),
+@@ -216,6 +228,7 @@ static ctl_table svcrdma_parm_table[] = {
+ 
+ static ctl_table svcrdma_table[] = {
+ 	{
++		.ctl_name	= CTL_UNNUMBERED,
+ 		.procname	= "svc_rdma",
+ 		.mode		= 0555,
+ 		.child		= svcrdma_parm_table
diff --git a/kernel_patches/backport/2.6.18-EL5.3/rnfs_fs.patch b/kernel_patches/backport/2.6.18-EL5.3/rnfs_fs.patch
index c773b6f..e7dfe61 100644
--- a/kernel_patches/backport/2.6.18-EL5.3/rnfs_fs.patch
+++ b/kernel_patches/backport/2.6.18-EL5.3/rnfs_fs.patch
@@ -2632,3 +2632,111 @@ index 6fb493c..761ad29 100644
  	/*
  	 * Destroy queued, but not processed read completions. Note
  	 * that this cleanup has to be done before destroying the
+diff --git a/net/sunrpc/xprtrdma/svc_rdma.c b/net/sunrpc/xprtrdma/svc_rdma.c
+index 8710117..ce94fa4 100644
+--- a/net/sunrpc/xprtrdma/svc_rdma.c
++++ b/net/sunrpc/xprtrdma/svc_rdma.c
+@@ -116,6 +116,7 @@ static int read_reset_stat(ctl_table *table, int write,
+ static struct ctl_table_header *svcrdma_table_header;
+ static ctl_table svcrdma_parm_table[] = {
+ 	{
++		.ctl_name	= CTL_UNNUMBERED,
+ 		.procname	= "max_requests",
+ 		.data		= &svcrdma_max_requests,
+ 		.maxlen		= sizeof(unsigned int),
+@@ -126,6 +127,7 @@ static ctl_table svcrdma_parm_table[] = {
+ 		.extra2		= &max_max_requests
+ 	},
+ 	{
++		.ctl_name	= CTL_UNNUMBERED,
+ 		.procname	= "max_req_size",
+ 		.data		= &svcrdma_max_req_size,
+ 		.maxlen		= sizeof(unsigned int),
+@@ -136,6 +138,7 @@ static ctl_table svcrdma_parm_table[] = {
+ 		.extra2		= &max_max_inline
+ 	},
+ 	{
++		.ctl_name	= CTL_UNNUMBERED,
+ 		.procname	= "max_outbound_read_requests",
+ 		.data		= &svcrdma_ord,
+ 		.maxlen		= sizeof(unsigned int),
+@@ -147,6 +150,7 @@ static ctl_table svcrdma_parm_table[] = {
+ 	},
+ 
+ 	{
++		.ctl_name	= CTL_UNNUMBERED,
+ 		.procname	= "rdma_stat_read",
+ 		.data		= &rdma_stat_read,
+ 		.maxlen		= sizeof(atomic_t),
+@@ -154,6 +158,7 @@ static ctl_table svcrdma_parm_table[] = {
+ 		.proc_handler	= &read_reset_stat,
+ 	},
+ 	{
++		.ctl_name	= CTL_UNNUMBERED,
+ 		.procname	= "rdma_stat_recv",
+ 		.data		= &rdma_stat_recv,
+ 		.maxlen		= sizeof(atomic_t),
+@@ -161,6 +166,7 @@ static ctl_table svcrdma_parm_table[] = {
+ 		.proc_handler	= &read_reset_stat,
+ 	},
+ 	{
++		.ctl_name	= CTL_UNNUMBERED,
+ 		.procname	= "rdma_stat_write",
+ 		.data		= &rdma_stat_write,
+ 		.maxlen		= sizeof(atomic_t),
+@@ -168,6 +174,7 @@ static ctl_table svcrdma_parm_table[] = {
+ 		.proc_handler	= &read_reset_stat,
+ 	},
+ 	{
++		.ctl_name	= CTL_UNNUMBERED,
+ 		.procname	= "rdma_stat_sq_starve",
+ 		.data		= &rdma_stat_sq_starve,
+ 		.maxlen		= sizeof(atomic_t),
+@@ -175,6 +182,7 @@ static ctl_table svcrdma_parm_table[] = {
+ 		.proc_handler	= &read_reset_stat,
+ 	},
+ 	{
++		.ctl_name	= CTL_UNNUMBERED,
+ 		.procname	= "rdma_stat_rq_starve",
+ 		.data		= &rdma_stat_rq_starve,
+ 		.maxlen		= sizeof(atomic_t),
+@@ -182,6 +190,7 @@ static ctl_table svcrdma_parm_table[] = {
+ 		.proc_handler	= &read_reset_stat,
+ 	},
+ 	{
++		.ctl_name	= CTL_UNNUMBERED,
+ 		.procname	= "rdma_stat_rq_poll",
+ 		.data		= &rdma_stat_rq_poll,
+ 		.maxlen		= sizeof(atomic_t),
+@@ -189,6 +198,7 @@ static ctl_table svcrdma_parm_table[] = {
+ 		.proc_handler	= &read_reset_stat,
+ 	},
+ 	{
++		.ctl_name	= CTL_UNNUMBERED,
+ 		.procname	= "rdma_stat_rq_prod",
+ 		.data		= &rdma_stat_rq_prod,
+ 		.maxlen		= sizeof(atomic_t),
+@@ -196,6 +206,7 @@ static ctl_table svcrdma_parm_table[] = {
+ 		.proc_handler	= &read_reset_stat,
+ 	},
+ 	{
++		.ctl_name	= CTL_UNNUMBERED,
+ 		.procname	= "rdma_stat_sq_poll",
+ 		.data		= &rdma_stat_sq_poll,
+ 		.maxlen		= sizeof(atomic_t),
+@@ -203,6 +214,7 @@ static ctl_table svcrdma_parm_table[] = {
+ 		.proc_handler	= &read_reset_stat,
+ 	},
+ 	{
++		.ctl_name	= CTL_UNNUMBERED,
+ 		.procname	= "rdma_stat_sq_prod",
+ 		.data		= &rdma_stat_sq_prod,
+ 		.maxlen		= sizeof(atomic_t),
+@@ -216,6 +228,7 @@ static ctl_table svcrdma_parm_table[] = {
+ 
+ static ctl_table svcrdma_table[] = {
+ 	{
++		.ctl_name	= CTL_UNNUMBERED,
+ 		.procname	= "svc_rdma",
+ 		.mode		= 0555,
+ 		.child		= svcrdma_parm_table



More information about the ewg mailing list