From mboxrd@z Thu Jan 1 00:00:00 1970 From: Dave Jones Subject: Re: [PATCH 2/2] aio: fix the confliction of read events and migrating ring page Date: Thu, 20 Mar 2014 10:32:07 -0400 Message-ID: <20140320143207.GA3760@redhat.com> References: <532A80B1.5010002@cn.fujitsu.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Cc: Benjamin , Al Viro , jmoyer@redhat.com, kosaki.motohiro@jp.fujitsu.com, KAMEZAWA Hiroyuki , Yasuaki Ishimatsu , tangchen , miaox@cn.fujitsu.com, linux-aio@kvack.org, fsdevel , linux-kernel , Andrew Morton To: Gu Zheng Return-path: Content-Disposition: inline In-Reply-To: <532A80B1.5010002@cn.fujitsu.com> Sender: owner-linux-aio@kvack.org List-Id: linux-fsdevel.vger.kernel.org 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, send a message with 'unsubscribe linux-aio' in the body to majordomo@kvack.org. For more info on Linux AIO, see: http://www.kvack.org/aio/ Don't email: aart@kvack.org