From: Octavian Purdila Date: Wed, 4 Jun 2008 22:45:58 +0000 (-0700) Subject: tcp: Fix for race due to temporary drop of the socket lock in skb_splice_bits. X-Git-Tag: v2.6.26-rc5~1^2~1 X-Git-Url: http://git.openpandora.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=293ad60401da621b8b329abbe8c388edb25f658a;p=pandora-kernel.git tcp: Fix for race due to temporary drop of the socket lock in skb_splice_bits. skb_splice_bits temporary drops the socket lock while iterating over the socket queue in order to break a reverse locking condition which happens with sendfile. This, however, opens a window of opportunity for tcp_collapse() to aggregate skbs and thus potentially free the current skb used in skb_splice_bits and tcp_read_sock. This patch fixes the problem by (re-)getting the same "logical skb" after the lock has been temporary dropped. Based on idea and initial patch from Evgeniy Polyakov. Signed-off-by: Octavian Purdila Acked-by: Evgeniy Polyakov Signed-off-by: David S. Miller --- Reading git-diff-tree failed