diff -u -r1.2 ip_conntrack_core.c --- a/net/ipv4/netfilter/ip_conntrack_core.c 4 Aug 2004 15:26:55 -0000 1.2 +++ b/net/ipv4/netfilter/ip_conntrack_core.c 4 Aug 2004 16:46:10 -0000 @@ -1075,9 +1075,9 @@ int ip_conntrack_alter_reply(struct ip_conntrack *conntrack, const struct ip_conntrack_tuple *newreply) { - WRITE_LOCK(&ip_conntrack_lock); + READ_LOCK(&ip_conntrack_lock); if (__ip_conntrack_find(newreply, conntrack)) { - WRITE_UNLOCK(&ip_conntrack_lock); + READ_UNLOCK(&ip_conntrack_lock); return 0; } /* Should be unconfirmed, so not in hash table yet */ @@ -1089,7 +1089,7 @@ conntrack->tuplehash[IP_CT_DIR_REPLY].tuple = *newreply; if (!conntrack->master && list_empty(&conntrack->sibling_list)) conntrack->helper = ip_ct_find_helper(newreply); - WRITE_UNLOCK(&ip_conntrack_lock); + READ_UNLOCK(&ip_conntrack_lock); return 1; }