Received: by 2002:a25:c205:0:0:0:0:0 with SMTP id s5csp1381275ybf; Thu, 27 Feb 2020 09:53:07 -0800 (PST) X-Google-Smtp-Source: APXvYqxWvtMtpakFpJ+m055OVs60cmxygpPnf2ds2hJr5zAjNJFfN4k2g/L3Rzskjxt20CG75VtF X-Received: by 2002:aca:3189:: with SMTP id x131mr162913oix.33.1582825987355; Thu, 27 Feb 2020 09:53:07 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1582825987; cv=none; d=google.com; s=arc-20160816; b=Gdj8XapuVSNh29R6T2qtmkPmaRhw6D5z1JqbXbTieyT5QWJ7B1EDBkdhbb37WO9InC BNK4bWiTe+iKTP8t7uuf3I07FGAa8bjyFUPY6XgJDLfBT1I2/y15tH3kbStl0zJ2Vsbm dPJ1U6Wrb/qzdfRlfPv1+tjv2b6pWU+6RUjNl82FP1fV/ja7sirDIY0JrXE1vXU0r7g4 qCkRuaa7zX6+E/DRw3Cin+syZH3L6ia8hxgb03WOjT3vDE2rhM2g3x7UJl3i1mc6Zacr IBJEkt21TZw+uuiMfw620ddtA5YkazvSuup1c5hl4LJkwrcqVaFIdf/Vt0PadUkdegDV ydeg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:user-agent:in-reply-to :content-disposition:mime-version:references:message-id:subject:cc :to:from:date; bh=GyNQ9m6MOfYRrKmN5KTdlZqbfXSYnqlqRIvm1P+xyO0=; b=pEXvKdSiNjV1CWffomINb8LWP9KECQjqMEGax6it+Ec/oM9bG/YQcwHjSjEXIum4Tx fVMj97wvrmLqlq0XKx3+8u/URCpKEPysk3dJf2n0saDCXbRt6Axt5xBEKM6lUx5Plu0w Pys5LeH8PKpNDWoHpyRM9ws6F4iJ4tzcnaFZbYUJL2jg09BXCL/DRMXtvzRr7ArDWshi tvJcLGvNkJwUM7Ov/mgV4Bww50NBcM6YZrBUpUU/MbW14xnbzWr2K//ZQUmuS9i+y9vb Q9vpEcfuSDcxabIL5mUyEY9FwqO6pjUgNIaw7Qp7rmTYU65iHJ79+8HKjMep3B9WRFX2 QzeQ== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id v21si1988080otp.189.2020.02.27.09.52.54; Thu, 27 Feb 2020 09:53:07 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730270AbgB0Rwb (ORCPT + 99 others); Thu, 27 Feb 2020 12:52:31 -0500 Received: from mga04.intel.com ([192.55.52.120]:14627 "EHLO mga04.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726877AbgB0Rwb (ORCPT ); Thu, 27 Feb 2020 12:52:31 -0500 X-Amp-Result: UNKNOWN X-Amp-Original-Verdict: FILE UNKNOWN X-Amp-File-Uploaded: False Received: from fmsmga008.fm.intel.com ([10.253.24.58]) by fmsmga104.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 27 Feb 2020 09:52:30 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.70,492,1574150400"; d="scan'208";a="232269369" Received: from iweiny-desk2.sc.intel.com ([10.3.52.157]) by fmsmga008.fm.intel.com with ESMTP; 27 Feb 2020 09:52:30 -0800 Date: Thu, 27 Feb 2020 09:52:30 -0800 From: Ira Weiny To: Dave Chinner Cc: linux-kernel@vger.kernel.org, Alexander Viro , "Darrick J. Wong" , Dan Williams , Christoph Hellwig , "Theodore Y. Ts'o" , Jan Kara , linux-ext4@vger.kernel.org, linux-xfs@vger.kernel.org, linux-fsdevel@vger.kernel.org Subject: Re: [PATCH V4 01/13] fs/xfs: Remove unnecessary initialization of i_rwsem Message-ID: <20200227175229.GA7072@iweiny-DESK2.sc.intel.com> References: <20200221004134.30599-1-ira.weiny@intel.com> <20200221004134.30599-2-ira.weiny@intel.com> <20200221012625.GT10776@dread.disaster.area> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20200221012625.GT10776@dread.disaster.area> User-Agent: Mutt/1.11.1 (2018-12-01) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Fri, Feb 21, 2020 at 12:26:25PM +1100, Dave Chinner wrote: > On Thu, Feb 20, 2020 at 04:41:22PM -0800, ira.weiny@intel.com wrote: > > From: Ira Weiny > > > > xfs_reinit_inode() -> inode_init_always() already handles calling > > init_rwsem(i_rwsem). Doing so again is unneeded. > > > > Signed-off-by: Ira Weiny > > Except that this inode has been destroyed and freed by the VFS, and > we are now recycling it back into the VFS before we actually > physically freed it. > > Hence we have re-initialise the semaphore because the semaphore can > contain internal state that is specific to it's new life cycle (e.g. > the lockdep context) that will cause problems if we just assume that > the inode is the same inode as it was before we recycled it back > into the VFS caches. > > So, yes, we actually do need to re-initialise the rwsem here. I'm fine dropping the patch... But I'm not following how the xfs_reinit_inode() on line 422 does not take care of this? fs/xfs/xfs_icache.c: 422 error = xfs_reinit_inode(mp, inode); 423 if (error) { 424 bool wake; 425 /* 426 * Re-initializing the inode failed, and we are in deep 427 * trouble. Try to re-add it to the reclaim list. 428 */ 429 rcu_read_lock(); 430 spin_lock(&ip->i_flags_lock); 431 wake = !!__xfs_iflags_test(ip, XFS_INEW); 432 ip->i_flags &= ~(XFS_INEW | XFS_IRECLAIM); 433 if (wake) 434 wake_up_bit(&ip->i_flags, __XFS_INEW_BIT); 435 ASSERT(ip->i_flags & XFS_IRECLAIMABLE); 436 trace_xfs_iget_reclaim_fail(ip); 437 goto out_error; 438 } 439 440 spin_lock(&pag->pag_ici_lock); 441 spin_lock(&ip->i_flags_lock); 442 443 /* 444 * Clear the per-lifetime state in the inode as we are now 445 * effectively a new inode and need to return to the initial 446 * state before reuse occurs. 447 */ 448 ip->i_flags &= ~XFS_IRECLAIM_RESET_FLAGS; 449 ip->i_flags |= XFS_INEW; 450 xfs_inode_clear_reclaim_tag(pag, ip->i_ino); 451 inode->i_state = I_NEW; 452 ip->i_sick = 0; 453 ip->i_checked = 0; 454 455 ASSERT(!rwsem_is_locked(&inode->i_rwsem)); 456 init_rwsem(&inode->i_rwsem); 457 458 spin_unlock(&ip->i_flags_lock); 459 spin_unlock(&pag->pag_ici_lock); Does this need to be done under one of these locks? Ira > > Cheers, > > Dave. > -- > Dave Chinner > david@fromorbit.com