On Thu, Aug 9, 2012 at 2:50 AM, Myklebust, Trond <Trond.Myklebust@xxxxxxxxxx> wrote: > On Wed, 2012-08-08 at 10:03 +0800, Peng Tao wrote: >> From: Peng Tao <tao.peng@xxxxxxx> >> >> For bufferred write, scan dirty pages to find out longest continuous >> dirty pages. In this case, also allow layout driver to specify a >> maximum layoutget size which is useful to avoid busy scanning dirty pages >> for block layout client. > > This is _really_ ugly, and is a source of potential deadlocks if > multiple threads are scanning+locking pages at the same time. Multiple threads won't be able to scan into the same region as borders are protected by page writeback bit. > > Why not simplify this by dropping the complicated tests for whether or > not the pages are dirty? That gets rid of the deadlock-prone lock_page() > calls, and would enable you to just use radix_tree_next_hole(). > OK. I will cook a patch to drop the complicated page dirty/writeback checks and just use radix_tree_next_hole. -- Thanks, Tao -- To unsubscribe from this list: send the line "unsubscribe linux-nfs" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html