SOURCES (LINUX_2_6): linux-2.6-nf-rpc.patch - proted to 2.6.14.

pluto pluto at pld-linux.org
Wed Nov 2 11:40:37 CET 2005


Author: pluto                        Date: Wed Nov  2 10:40:36 2005 GMT
Module: SOURCES                       Tag: LINUX_2_6
---- Log message:
- proted to 2.6.14.

---- Files affected:
SOURCES:
   linux-2.6-nf-rpc.patch (1.1.2.1 -> 1.1.2.2) 

---- Diffs:

================================================================
Index: SOURCES/linux-2.6-nf-rpc.patch
diff -u SOURCES/linux-2.6-nf-rpc.patch:1.1.2.1 SOURCES/linux-2.6-nf-rpc.patch:1.1.2.2
--- SOURCES/linux-2.6-nf-rpc.patch:1.1.2.1	Mon Oct 31 19:48:59 2005
+++ SOURCES/linux-2.6-nf-rpc.patch	Wed Nov  2 11:40:31 2005
@@ -167,7 +167,7 @@
 diff -Nur --exclude '*.orig' linux-2.6.14.org/net/ipv4/netfilter/ip_conntrack_rpc_tcp.c linux-2.6.14/net/ipv4/netfilter/ip_conntrack_rpc_tcp.c
 --- linux-2.6.14.org/net/ipv4/netfilter/ip_conntrack_rpc_tcp.c	1970-01-01 01:00:00.000000000 +0100
 +++ linux-2.6.14/net/ipv4/netfilter/ip_conntrack_rpc_tcp.c	2005-10-31 19:33:03.000000000 +0100
-@@ -0,0 +1,562 @@
+@@ -0,0 +1,561 @@
 +/* RPC extension for IP (TCP) connection tracking, Version 2.2
 + * (C) 2000 by Marcelo Barbosa Lima <marcelo.lima at dcc.unicamp.br>
 + *	- original rpc tracking module
@@ -233,7 +233,6 @@
 +#include <linux/stddef.h>
 +#include <linux/list.h>
 +
-+#include <linux/netfilter_ipv4/lockhelp.h>
 +#include <linux/netfilter_ipv4/ip_tables.h>
 +#include <linux/netfilter_ipv4/ip_conntrack_helper.h>
 +#include <linux/netfilter_ipv4/ip_conntrack_rpc.h>
@@ -265,8 +264,8 @@
 +#endif
 +
 +DECLARE_RWLOCK(ipct_rpc_tcp_lock);
-+#define ASSERT_READ_LOCK(x) MUST_BE_READ_LOCKED(&ipct_rpc_tcp_lock)
-+#define ASSERT_WRITE_LOCK(x) MUST_BE_WRITE_LOCKED(&ipct_rpc_tcp_lock)
++#define ASSERT_READ_LOCK(x)	/* dont use that */
++#define ASSERT_WRITE_LOCK(x)	/* dont use that */
 +#include <linux/netfilter_ipv4/listhelp.h>
 +
 +/* For future conections RPC, using client's cache bindings
@@ -279,9 +278,9 @@
 +{
 +	struct request_p *p = (void *)request_p_ul;
 +	
-+	WRITE_LOCK(&ipct_rpc_tcp_lock);
++	write_lock_bh(&ipct_rpc_tcp_lock);
 +	LIST_DELETE(&request_p_list_tcp, p);
-+	WRITE_UNLOCK(&ipct_rpc_tcp_lock);
++	write_unlock_bh(&ipct_rpc_tcp_lock);
 +	kfree(p);
 +	return;
 +}
@@ -289,10 +288,10 @@
 +
 +static void req_cl(struct request_p * r)
 +{
-+	WRITE_LOCK(&ipct_rpc_tcp_lock);
++	write_lock_bh(&ipct_rpc_tcp_lock);
 +	del_timer(&r->timeout);
 +	LIST_DELETE(&request_p_list_tcp, r);
-+	WRITE_UNLOCK(&ipct_rpc_tcp_lock);
++	write_unlock_bh(&ipct_rpc_tcp_lock);
 +	kfree(r);
 +	return;
 +}
@@ -323,7 +322,7 @@
 +	struct request_p *req_p;
 +	
 +	/* Verifies if entry already exists */
-+	WRITE_LOCK(&ipct_rpc_tcp_lock);
++	write_lock_bh(&ipct_rpc_tcp_lock);
 +	req_p = LIST_FIND(&request_p_list_tcp, request_p_cmp,
 +		struct request_p *, xid, ip, port);
 +
@@ -333,11 +332,11 @@
 +			req_p->timeout.expires = jiffies + EXP;
 +			add_timer(&req_p->timeout);	
 +		} 
-+		WRITE_UNLOCK(&ipct_rpc_tcp_lock);
++		write_unlock_bh(&ipct_rpc_tcp_lock);
 +		return;	
 +
 +	}
-+	WRITE_UNLOCK(&ipct_rpc_tcp_lock);
++	write_unlock_bh(&ipct_rpc_tcp_lock);
 +	
 +	/* Allocate new request_p */
 +	req_p = (struct request_p *) kmalloc(sizeof(struct request_p), GFP_ATOMIC);
@@ -361,9 +360,9 @@
 +	add_timer(&req_p->timeout); 
 +
 +	/* Put in list */
-+	WRITE_LOCK(&ipct_rpc_tcp_lock);
++	write_lock_bh(&ipct_rpc_tcp_lock);
 +	list_prepend(&request_p_list_tcp, req_p);
-+	WRITE_UNLOCK(&ipct_rpc_tcp_lock); 
++	write_unlock_bh(&ipct_rpc_tcp_lock); 
 +	return; 
 +}
 +
@@ -479,7 +478,7 @@
 +		if (port_buf && port_buf != nsrexec) {
 +			DEBUGP("port found: %u\n", port_buf);
 +
-+                        exp = ip_conntrack_expect_alloc();
++                        exp = ip_conntrack_expect_alloc(ct);
 +                        if (!exp) {
 +                          ret = NF_DROP;
 +                          goto out;
@@ -528,10 +527,10 @@
 +				NIPQUAD(exp->mask.dst.ip),
 +				exp->mask.dst.protonum);
 +
-+			if (ip_conntrack_expect_related(exp) != 0) {
-+		                ip_conntrack_expect_free(exp);
++			if (ip_conntrack_expect_related(exp) != 0)
 +        		        ret = NF_DROP;
-+        		}
++
++			ip_conntrack_expect_put(exp);
 +
 +		}
 +
@@ -733,7 +732,7 @@
 diff -Nur --exclude '*.orig' linux-2.6.14.org/net/ipv4/netfilter/ip_conntrack_rpc_udp.c linux-2.6.14/net/ipv4/netfilter/ip_conntrack_rpc_udp.c
 --- linux-2.6.14.org/net/ipv4/netfilter/ip_conntrack_rpc_udp.c	1970-01-01 01:00:00.000000000 +0100
 +++ linux-2.6.14/net/ipv4/netfilter/ip_conntrack_rpc_udp.c	2005-10-31 19:33:03.000000000 +0100
-@@ -0,0 +1,536 @@
+@@ -0,0 +1,535 @@
 +/* RPC extension for IP (UDP) connection tracking, Version 2.2
 + * (C) 2000 by Marcelo Barbosa Lima <marcelo.lima at dcc.unicamp.br>
 + *	- original rpc tracking module
@@ -793,7 +792,6 @@
 +#include <linux/stddef.h>
 +#include <linux/list.h>
 +
-+#include <linux/netfilter_ipv4/lockhelp.h>
 +#include <linux/netfilter_ipv4/ip_tables.h>
 +#include <linux/netfilter_ipv4/ip_conntrack_helper.h>
 +#include <linux/netfilter_ipv4/ip_conntrack_rpc.h>
@@ -822,8 +820,8 @@
 +#endif
 +
 +DECLARE_RWLOCK(ipct_rpc_udp_lock);
-+#define ASSERT_READ_LOCK(x) MUST_BE_READ_LOCKED(&ipct_rpc_udp_lock)
-+#define ASSERT_WRITE_LOCK(x) MUST_BE_WRITE_LOCKED(&ipct_rpc_udp_lock)
++#define ASSERT_READ_LOCK(x)	/* dont use that */
++#define ASSERT_WRITE_LOCK(x)	/* dont use that */
 +#include <linux/netfilter_ipv4/listhelp.h>
 +
 +/* For future conections RPC, using client's cache bindings
@@ -836,9 +834,9 @@
 +{
 +	struct request_p *p = (void *)request_p_ul;
 +	
-+	WRITE_LOCK(&ipct_rpc_udp_lock);
++	write_lock_bh(&ipct_rpc_udp_lock);
 +	LIST_DELETE(&request_p_list_udp, p);
-+	WRITE_UNLOCK(&ipct_rpc_udp_lock);
++	write_unlock_bh(&ipct_rpc_udp_lock);
 +	kfree(p);
 +	return;
 +}
@@ -846,10 +844,10 @@
 +
 +static void req_cl(struct request_p * r)
 +{
-+	WRITE_LOCK(&ipct_rpc_udp_lock);
++	write_lock_bh(&ipct_rpc_udp_lock);
 +	del_timer(&r->timeout);
 +	LIST_DELETE(&request_p_list_udp, r);
-+	WRITE_UNLOCK(&ipct_rpc_udp_lock);
++	write_unlock_bh(&ipct_rpc_udp_lock);
 +	kfree(r);
 +	return;
 +}
@@ -880,7 +878,7 @@
 +	struct request_p *req_p;
 +        
 +	/* Verifies if entry already exists */
-+	WRITE_LOCK(&ipct_rpc_udp_lock);
++	write_lock_bh(&ipct_rpc_udp_lock);
 +	req_p = LIST_FIND(&request_p_list_udp, request_p_cmp,
 +		struct request_p *, xid, ip, port);
 +
@@ -890,11 +888,11 @@
 +			req_p->timeout.expires = jiffies + EXP;
 +			add_timer(&req_p->timeout);	
 +		} 
-+		WRITE_UNLOCK(&ipct_rpc_udp_lock);
++		write_unlock_bh(&ipct_rpc_udp_lock);
 +		return;	
 +
 +	}
-+	WRITE_UNLOCK(&ipct_rpc_udp_lock);
++	write_unlock_bh(&ipct_rpc_udp_lock);
 +	
 +	/* Allocate new request_p */
 +	req_p = (struct request_p *) kmalloc(sizeof(struct request_p), GFP_ATOMIC);
@@ -918,9 +916,9 @@
 +	add_timer(&req_p->timeout); 
 +
 +	/* Put in list */
-+	WRITE_LOCK(&ipct_rpc_udp_lock);
++	write_lock_bh(&ipct_rpc_udp_lock);
 +	list_prepend(&request_p_list_udp, req_p);
-+	WRITE_UNLOCK(&ipct_rpc_udp_lock); 
++	write_unlock_bh(&ipct_rpc_udp_lock); 
 +	return; 
 +
 +}
@@ -1032,7 +1030,7 @@
 +		if (port_buf) {
 +			DEBUGP("port found: %u\n", port_buf);
 +
-+                        exp = ip_conntrack_expect_alloc();
++                        exp = ip_conntrack_expect_alloc(ct);
 +                        if (!exp) {
 +                          ret = NF_DROP;
 +                          goto out;
@@ -1076,10 +1074,10 @@
 +				NIPQUAD(exp->mask.dst.ip),
 +				exp->mask.dst.protonum);
 +
-+			if (ip_conntrack_expect_related(exp) != 0) {
-+		                ip_conntrack_expect_free(exp);
++			if (ip_conntrack_expect_related(exp) != 0)
 +        		        ret = NF_DROP;
-+        		}
++
++			ip_conntrack_expect_put(exp);
 +		}
 +
 +out:
@@ -1273,7 +1271,7 @@
 diff -Nur --exclude '*.orig' linux-2.6.14.org/net/ipv4/netfilter/ipt_rpc.c linux-2.6.14/net/ipv4/netfilter/ipt_rpc.c
 --- linux-2.6.14.org/net/ipv4/netfilter/ipt_rpc.c	1970-01-01 01:00:00.000000000 +0100
 +++ linux-2.6.14/net/ipv4/netfilter/ipt_rpc.c	2005-10-31 19:33:03.000000000 +0100
-@@ -0,0 +1,439 @@
+@@ -0,0 +1,425 @@
 +/* RPC extension for IP connection matching, Version 2.2
 + * (C) 2000 by Marcelo Barbosa Lima <marcelo.lima at dcc.unicamp.br>
 + *	- original rpc tracking module
@@ -1329,7 +1327,6 @@
 +#include <linux/netfilter_ipv4/ip_conntrack.h>
 +#include <linux/netfilter_ipv4/ip_tables.h>
 +#include <linux/netfilter_ipv4/ip_conntrack_rpc.h>
-+#include <linux/netfilter_ipv4/lockhelp.h>
 +#include <linux/netfilter_ipv4/ipt_rpc.h>
 +
 +#define MAX_PORTS 8
@@ -1365,24 +1362,11 @@
 +extern struct list_head request_p_list_udp;
 +extern struct module *ip_conntrack_rpc_udp;
 +
-+DECLARE_RWLOCK_EXTERN(ipct_rpc_tcp_lock);
-+DECLARE_RWLOCK_EXTERN(ipct_rpc_udp_lock);
++extern rwlock_t ipct_rpc_tcp_lock;
++extern rwlock_t ipct_rpc_udp_lock;
 +
-+#define ASSERT_READ_LOCK(x)					\
-+do {								\
-+	if (x == &request_p_list_udp)				\
-+		MUST_BE_READ_LOCKED(&ipct_rpc_udp_lock);	\
-+	else if (x == &request_p_list_tcp)			\
-+		MUST_BE_READ_LOCKED(&ipct_rpc_tcp_lock);	\
-+} while (0)
-+
-+#define ASSERT_WRITE_LOCK(x)					\
-+do {								\
-+	if (x == &request_p_list_udp)				\
-+		MUST_BE_WRITE_LOCKED(&ipct_rpc_udp_lock);	\
-+	else if (x == &request_p_list_tcp)			\
-+		MUST_BE_WRITE_LOCKED(&ipct_rpc_tcp_lock);	\
-+} while (0)
++#define ASSERT_READ_LOCK(x)	/* dont use that */
++#define ASSERT_WRITE_LOCK(x)	/* dont use that */
 +
 +#include <linux/netfilter_ipv4/listhelp.h>
 +
@@ -1478,9 +1462,9 @@
 +
 +		switch (ct->tuplehash[0].tuple.dst.protonum) {
 +			case IPPROTO_UDP:
-+				WRITE_LOCK(&ipct_rpc_udp_lock);
++				write_lock_bh(&ipct_rpc_udp_lock);
 +			case IPPROTO_TCP:
-+				WRITE_LOCK(&ipct_rpc_tcp_lock);
++				write_lock_bh(&ipct_rpc_tcp_lock);
 +		}
 +		req_p = LIST_FIND(&request_p_list, request_p_cmp,
 +				  struct request_p *, xid,
@@ -1509,9 +1493,9 @@
 +		}
 +		switch (ct->tuplehash[0].tuple.dst.protonum) {
 +			case IPPROTO_UDP:
-+				WRITE_UNLOCK(&ipct_rpc_udp_lock);
++				write_unlock_bh(&ipct_rpc_udp_lock);
 +			case IPPROTO_TCP:
-+				WRITE_UNLOCK(&ipct_rpc_tcp_lock);
++				write_unlock_bh(&ipct_rpc_tcp_lock);
 +		}
 +
 +		if(rpcinfo->strict == 1)
================================================================

---- CVS-web:
    http://cvs.pld-linux.org/SOURCES/linux-2.6-nf-rpc.patch?r1=1.1.2.1&r2=1.1.2.2&f=u




More information about the pld-cvs-commit mailing list