Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755273AbbDNMok (ORCPT ); Tue, 14 Apr 2015 08:44:40 -0400 Received: from zeniv.linux.org.uk ([195.92.253.2]:59306 "EHLO ZenIV.linux.org.uk" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753511AbbDNMoc (ORCPT ); Tue, 14 Apr 2015 08:44:32 -0400 Date: Tue, 14 Apr 2015 13:44:29 +0100 From: Al Viro To: Samuel Thibault , linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org Subject: Re: I_CLEAR bug while shrinking dcache Message-ID: <20150414124428.GW889@ZenIV.linux.org.uk> References: <20150414081254.GD14691@type.youpi.perso.aquilenet.fr> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20150414081254.GD14691@type.youpi.perso.aquilenet.fr> 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: 1022 Lines: 25 On Tue, Apr 14, 2015 at 10:12:54AM +0200, Samuel Thibault wrote: > So it seems that shrink_dentry_list was trying to kill an inode which > already has I_CLEAR. I'll be trying the attached patch in the next > days. That patch is just papering over the problem. What you have is a dentry with ->d_inode pointing to something with I_CLEAR set. So either * dentry has already been through __dentry_kill() * or you have live dentry with ->d_inode somehow not contributing to refcount of ->d_inode * or you have an inode with positive refcount and I_CLEAR set. The first variant can happen, but in that case it should have had DCACHE_DENTRY_KILLED set by said __dentry_kill() and skipped. The other two are clear inode refcounting bugs. Do you have a reproducer for that? -- 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/