Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S936549Ab3DJV7U (ORCPT ); Wed, 10 Apr 2013 17:59:20 -0400 Received: from mail-pb0-f51.google.com ([209.85.160.51]:61169 "EHLO mail-pb0-f51.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1761894Ab3DJV7S (ORCPT ); Wed, 10 Apr 2013 17:59:18 -0400 Date: Wed, 10 Apr 2013 14:59:15 -0700 From: Kent Overstreet To: "Theodore Ts'o" , linux-kernel@vger.kernel.org, linux-aio@kvack.org, akpm@linux-foundation.org, Zach Brown , Felipe Balbi , Greg Kroah-Hartman , Mark Fasheh , Joel Becker , Rusty Russell , Jens Axboe , Asai Thambi S P , Selvan Mani , Sam Bradshaw , Jeff Moyer , Al Viro , Benjamin LaHaise , Minchan Kim Subject: Re: [PATCH 30/33] block, aio: batch completion for bios/kiocbs Message-ID: <20130410215915.GB30871@google.com> References: <1363883754-27966-1-git-send-email-koverstreet@google.com> <1363883754-27966-31-git-send-email-koverstreet@google.com> <20130402194803.GA5703@thunk.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20130402194803.GA5703@thunk.org> User-Agent: Mutt/1.5.21 (2010-09-15) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1173 Lines: 31 On Tue, Apr 02, 2013 at 03:48:03PM -0400, Theodore Ts'o wrote: > On Thu, Mar 21, 2013 at 09:35:51AM -0700, Kent Overstreet wrote: > > + if (unlikely(req->ki_ctx != ctx)) { > > + kioctx_ring_unlock(ctx, tail); > > + > > + ctx = req->ki_ctx; > > + tail = kioctx_ring_lock(ctx); > > + } > > The only place where you're calling kioctx_ring_lock() is above, which > is part of an unlock/lock pair. > > There is also a kioctx_ring_unlock at the end of batch_complete_aio(): > > > + kioctx_ring_unlock(ctx, tail); > > + local_irq_restore(flags); > > + rcu_read_unlock(); > > But I'm not seeing a matching kioctx_ring_lock() before the while loop > in batch_complete_aio(), nor anywhere else in the file. And since > kioctx_ring_lock() is a static function.... > > Am I missing something? We start out with ctx == NULL - we handle the initial kiocb the same way we handle a kiocb with a different kioctx as the last one. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/