On Thu, Mar 20, 2014 at 01:46:25PM +0800, Gu Zheng wrote: > diff --git a/fs/aio.c b/fs/aio.c > index 88ad40c..e353085 100644 > --- a/fs/aio.c > +++ b/fs/aio.c > @@ -319,6 +319,9 @@ static int aio_migratepage(struct address_space *mapping, struct page *new, > ctx->ring_pages[old->index] = new; > spin_unlock_irqrestore(&ctx->completion_lock, flags); > > + /* Ensure read event is completed before putting old page */ > + mutex_lock(&ctx->ring_lock); > + mutex_unlock(&ctx->ring_lock); > put_page(old); > > return rc; This looks a bit weird. Would using a completion work here ? Dave -- To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html