From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from zeniv.linux.org.uk ([195.92.253.2]:39225 "EHLO ZenIV.linux.org.uk" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751804AbcABCbP (ORCPT ); Fri, 1 Jan 2016 21:31:15 -0500 Date: Sat, 2 Jan 2016 02:31:06 +0000 From: Al Viro To: Zhihui Zhang Cc: clm@fb.com, tytso@mit.edu, swhiteho@redhat.com, mfasheh@suse.com, linux-fsdevel@vger.kernel.org Subject: Re: [PATCH] Remove I_WILL_FREE Message-ID: <20160102023105.GH9938@ZenIV.linux.org.uk> References: <1451699526-28608-1-git-send-email-zzhsuny@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1451699526-28608-1-git-send-email-zzhsuny@gmail.com> Sender: linux-fsdevel-owner@vger.kernel.org List-ID: On Fri, Jan 01, 2016 at 08:52:06PM -0500, Zhihui Zhang wrote: > I_WILL_FREE does not really add any new functionality over I_FREEING. > If I_WILL_FREE is set, it will be replaced by I_FREEING under the inode > lock. And they always appear in the same if statement. Do they? Consider fs/fs-writeback.c:351: if (unlikely(inode->i_state & I_FREEING)) fs/fs-writeback.c:472: if (inode->i_state & (I_WB_SWITCH | I_FREEING) || fs/fs-writeback.c:1161: if (inode->i_state & I_FREEING) fs/fs-writeback.c:2049: if (inode->i_state & I_FREEING) for a few counterexamples...