From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jeff Moyer Subject: Re: [patch] fs: aio fix rcu lookup Date: Wed, 19 Jan 2011 14:46:27 -0500 Message-ID: References: <20110118190114.GA5070@quack.suse.cz> <20110118235236.GA14087@quack.suse.cz> <20110119132123.GC4246@quack.suse.cz> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Cc: Nick Piggin , Andrew Morton , linux-fsdevel , linux-kernel@vger.kernel.org To: Jan Kara Return-path: Received: from mx1.redhat.com ([209.132.183.28]:36297 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754081Ab1ASTqf (ORCPT ); Wed, 19 Jan 2011 14:46:35 -0500 In-Reply-To: (Jeff Moyer's message of "Wed, 19 Jan 2011 14:13:34 -0500") Sender: linux-fsdevel-owner@vger.kernel.org List-ID: Jeff Moyer writes: > Jan Kara writes: > >> But there's the second race I describe making it possible >> for new IO to be created after io_destroy() has waited for all IO to >> finish... > > Can't that be solved by introducing memory barriers around the accesses > to ->dead? Upon further consideration, I don't think so. Given the options, I think adding the synchronize rcu to the io_destroy path is the best way forward. You're already waiting for a bunch of queued I/O to finish, so there is no guarantee that you're going to finish that call quickly. Cheers, Jeff