]> git.baikalelectronics.ru Git - kernel.git/commit
relayfs: fix infinite loop with splice()
authorTom Zanussi <zanussi@comcast.net>
Tue, 9 Dec 2008 21:14:10 +0000 (13:14 -0800)
committerLinus Torvalds <torvalds@linux-foundation.org>
Wed, 10 Dec 2008 16:01:52 +0000 (08:01 -0800)
commitd4ff1a42695eb57026b74c64a317e3f68b8548ac
treee49f1c838a58912a36d03e12d1dab44d2df439d6
parenta851f71adc573590869862ef929fdde41fdea863
relayfs: fix infinite loop with splice()

Running kmemtraced, which uses splice() on relayfs, causes a hard lock on
x86-64 SMP.  As described by Tom Zanussi:

  It looks like you hit the same problem as described here:

  commit 75d1cf8e4eb1e4fdba315e5aea109d041fdae84d

      splice: fix infinite loop in generic_file_splice_read()

  relay uses the same loop but it never got noticed or fixed.

Cc: Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca>
Tested-by: Pekka Enberg <penberg@cs.helsinki.fi>
Signed-off-by: Tom Zanussi <tzanussi@gmail.com>
Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
kernel/relay.c