From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id ; Sun, 25 Feb 2001 19:29:45 -0500 Received: (majordomo@vger.kernel.org) by vger.kernel.org id ; Sun, 25 Feb 2001 19:29:37 -0500 Received: from leibniz.math.psu.edu ([146.186.130.2]:26245 "EHLO math.psu.edu") by vger.kernel.org with ESMTP id ; Sun, 25 Feb 2001 19:29:22 -0500 Date: Sun, 25 Feb 2001 19:29:21 -0500 (EST) From: Alexander Viro To: Jens Axboe cc: Nate Eldredge , linux-kernel@vger.kernel.org Subject: Re: 2.4.2-ac3: loop threads in D state In-Reply-To: <20010226012430.V7830@suse.de> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org On Mon, 26 Feb 2001, Jens Axboe wrote: > On Sun, Feb 25 2001, Alexander Viro wrote: > > Jens, you have a race in lo_clr_fd() (loop-6). I've put the fixed > > variant on ftp.math.psu.edu/pub/viro/loop-S2.gz. Diff and you'll > > see - it's in the very beginning of the lo_clr_fd(). > > Oops yeah you are right. Here's a diff of my current loop stuff > against -ac4, Alan could you apply? Andrea suggested removing > the loop private slab cache for buffer heads and just using the > bh_cachep pool, and it seems like a good idea to me. Erm... Jens, it really should be if (atomic_dec_and_test(...)) up(...); not just atomic_dec(...); up(...); Otherwise you can end up with too early exit of loop_thread. Normally it would not matter, but in pathological cases...