From: Nicholas Swenson Date: Fri, 10 Jan 2014 00:03:04 +0000 (-0800) Subject: bcache: Fix moving_gc deadlocking with a foreground write X-Git-Tag: v3.15-rc1~134^2^2~14 X-Git-Url: http://git.openpandora.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=da415a096fc06e49d1a15f7a06bcfe6ad44c5d38;p=pandora-kernel.git bcache: Fix moving_gc deadlocking with a foreground write Deadlock happened because a foreground write slept, waiting for a bucket to be allocated. Normally the gc would mark buckets available for invalidation. But the moving_gc was stuck waiting for outstanding writes to complete. These writes used the bcache_wq, the same queue foreground writes used. This fix gives moving_gc its own work queue, so it was still finish moving even if foreground writes are stuck waiting for allocation. It also makes work queue a parameter to the data_insert path, so moving_gc can use its workqueue for writes. Signed-off-by: Nicholas Swenson Signed-off-by: Kent Overstreet --- Reading git-diff-tree failed