Re: [patch 2/3] splice: implement default splice_read method

From: Andrew Morton
Date: Wed May 13 2009 - 01:39:21 EST


On Thu, 07 May 2009 15:37:36 +0200 Miklos Szeredi <miklos@xxxxxxxxxx> wrote:

> + for (i = 0; i < spd.nr_pages; i++) {
> + kunmap(pages[i]);

It is deadlockable if any thread of control holds more than a single
kmap at a time.

Because there are a finite number of kmaps available, and if one is
unavailable, kmap() waits for one to become free. If the number of
waiting threads equals the number of available slots, nobody makes any
progress.



--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/