From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S262346AbVF2SAo (ORCPT ); Wed, 29 Jun 2005 14:00:44 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S262386AbVF2SAg (ORCPT ); Wed, 29 Jun 2005 14:00:36 -0400 Received: from ns.virtualhost.dk ([195.184.98.160]:54944 "EHLO virtualhost.dk") by vger.kernel.org with ESMTP id S262346AbVF2R62 (ORCPT ); Wed, 29 Jun 2005 13:58:28 -0400 Date: Wed, 29 Jun 2005 19:58:05 +0200 From: Jens Axboe To: Hugh Dickins Cc: Linus Torvalds , Andrew Morton , linux-kernel@vger.kernel.org Subject: Re: [PATCH] 2.6.13-rc1 get_request nastiness Message-ID: <20050629175805.GA15356@suse.de> References: Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org On Wed, Jun 29 2005, Hugh Dickins wrote: > get_request is now expected to be holding on to queue_lock, with interrupts > disabled, when it returns NULL; but one path forgot that, causing all kinds > of nastiness under swap load - badness backtraces, strange failures, BUGs. > > Signed-off-by: Hugh Dickins > > --- 2.6.13-rc1/drivers/block/ll_rw_blk.c 2005-06-29 11:54:08.000000000 +0100 > +++ linux/drivers/block/ll_rw_blk.c 2005-06-29 14:41:04.000000000 +0100 > @@ -1917,10 +1917,9 @@ get_rq: > * limit of requests, otherwise we could have thousands of requests > * allocated with any setting of ->nr_requests > */ > - if (rl->count[rw] >= (3 * q->nr_requests / 2)) { > - spin_unlock_irq(q->queue_lock); > + if (rl->count[rw] >= (3 * q->nr_requests / 2)) > goto out; > - } > + Woops, my bad, sorry about that. I still have to think about that locking, not directly obvious. Thanks Hugh! -- Jens Axboe