Received: by 2002:ac0:a5a6:0:0:0:0:0 with SMTP id m35-v6csp5190572imm; Wed, 12 Sep 2018 02:24:55 -0700 (PDT) X-Google-Smtp-Source: ANB0Vdbfih8/xtf/WSzLgTFXdZkXI84kgvucRm4C2I8MYH5Q+zbdWcS596WsAXM/p+Y1ySbwojRl X-Received: by 2002:a17:902:b491:: with SMTP id y17-v6mr1156200plr.160.1536744294972; Wed, 12 Sep 2018 02:24:54 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1536744294; cv=none; d=google.com; s=arc-20160816; b=Mk/JiO+zdDuzphnkpdinyRsy+kPAkGvxiF9gCOZjxeWypcYQE1ixoaoKW0NdslQfhA pH2Sv2AswUzMxzkfFFku9wyAQrhkOc7EKY0qj0JIN3hXJVhWRKlJ5cj/fMM5ezHGRs+8 C+nVXe3opSL1kJnCjBEyVl04kz64KX3x6BOPTfj8lKFYLPk/CibTgdMyuMucZ/ndNowZ CcuOmlhl8VIkLdkRS8vhw9laweDK9nY7ORjpF0j5UPcG7CjGuXpejMOFvK37POgtW/aB SgFMGaTHCwpcHr7EMpQw4Lo8ne12sr5jrD7maK4HJYrJ1qLYKKMgiwb3/Q9FpCUHgFiq pswg== 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=olN/Lb71F1ALERJWRnlpvBHgwp5EzXf2GiIZzV41v2E=; b=WDzcN46sddnWyNuaqFm6uE36Kd/wnJUdLtEgZDm2ad6njMae/VPyACypmZFE7Uk2VN FpMLZmQsgVfZf64FRuvTTob2x5NSAm+qc7QeucohcE6aXea8GjvJXKq7KVbSNu1ZLzvE BwuMXJAGCQK2v31PPTzGBvPH9bRtb3C0AhKfLm9zP4OzyCL0GUMpmYGqMcTDx81mUyvI 6GhBFbG4SRejOO5U23FDr/evehIEaV8kBMGNhysl6q6xSiFKOw7PCK0v0oIlRRxpSFE0 CH7efgm3MMpD4ki4o2MvlNw6uCrlXYgQ07SeuMWMho0k1yA/V9xw5Fp3cVElrJzFojGR tmaw== 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 Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id p19-v6si436195plo.432.2018.09.12.02.24.39; Wed, 12 Sep 2018 02:24:54 -0700 (PDT) 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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727739AbeILO2E (ORCPT + 99 others); Wed, 12 Sep 2018 10:28:04 -0400 Received: from mx2.suse.de ([195.135.220.15]:52068 "EHLO mx1.suse.de" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1727153AbeILO2E (ORCPT ); Wed, 12 Sep 2018 10:28:04 -0400 X-Virus-Scanned: by amavisd-new at test-mx.suse.de Received: from relay2.suse.de (unknown [195.135.220.254]) by mx1.suse.de (Postfix) with ESMTP id EBD70AF69; Wed, 12 Sep 2018 09:24:22 +0000 (UTC) Received: by quack2.suse.cz (Postfix, from userid 1000) id 13CE21E3613; Wed, 12 Sep 2018 11:24:22 +0200 (CEST) Date: Wed, 12 Sep 2018 11:24:22 +0200 From: Jan Kara To: Toshi Kani Cc: jack@suse.cz, dan.j.williams@intel.com, tytso@mit.edu, adilger.kernel@dilger.ca, linux-ext4@vger.kernel.org, linux-nvdimm@lists.01.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH 1/2] ext4, dax: update dax check to skip journal inode Message-ID: <20180912092422.GA7782@quack2.suse.cz> References: <20180911154246.6844-1-toshi.kani@hpe.com> <20180911154246.6844-2-toshi.kani@hpe.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20180911154246.6844-2-toshi.kani@hpe.com> User-Agent: Mutt/1.10.1 (2018-07-13) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue 11-09-18 09:42:45, Toshi Kani wrote: > Ext4 mount path calls ext4_iget() to obtain the journal inode. This > inode does not support DAX, and 'ext4_da_aops' needs to be set. It > currently works for the DAX mount case because ext4_iget() always set > 'ext4_da_aops' to any regular files. > > ext4_fill_super > ext4_load_journal > ext4_get_journal_inode > ext4_iget > > In preparation to fix ext4_iget() to set 'ext4_dax_aops' for DAX files, > update ext4_should_use_dax() to return false for the journal inode. > > Fixes: 5f0663bb4a64f588f0a2dd6d1be68d40f9af0086 > Signed-off-by: Toshi Kani > Cc: Jan Kara > Cc: Dan Williams > Cc: "Theodore Ts'o" > Cc: Andreas Dilger The journal inode is similar to any other 'system' inode we have in ext4. We don't really expect any of the address space operations to be called for it because we don't use page cache with these inodes. Very similar situation is with e.g. quota files. So to me it seems this patch is not really necessary. Or did you observe any bad effects without this patch? That being said I agree that it would be a good cleanup to define something like ext4_is_system_inode() and disable DAX for these inodes just because they are special. But I don't see a need for this as a part of your fix. Honza > --- > fs/ext4/ext4_jbd2.h | 8 ++++++++ > fs/ext4/inode.c | 2 ++ > 2 files changed, 10 insertions(+) > > diff --git a/fs/ext4/ext4_jbd2.h b/fs/ext4/ext4_jbd2.h > index 15b6dd733780..9847dc980a0d 100644 > --- a/fs/ext4/ext4_jbd2.h > +++ b/fs/ext4/ext4_jbd2.h > @@ -437,6 +437,14 @@ static inline int ext4_should_writeback_data(struct inode *inode) > return ext4_inode_journal_mode(inode) & EXT4_INODE_WRITEBACK_DATA_MODE; > } > > +static inline int ext4_is_journal_inode(struct inode *inode) > +{ > + struct ext4_sb_info *sbi = EXT4_SB(inode->i_sb); > + unsigned int journal_inum = le32_to_cpu(sbi->s_es->s_journal_inum); > + > + return journal_inum && (journal_inum == inode->i_ino); > +} > + > /* > * This function controls whether or not we should try to go down the > * dioread_nolock code paths, which makes it safe to avoid taking > diff --git a/fs/ext4/inode.c b/fs/ext4/inode.c > index d0dd585add6a..775cd9b4af55 100644 > --- a/fs/ext4/inode.c > +++ b/fs/ext4/inode.c > @@ -4686,6 +4686,8 @@ static bool ext4_should_use_dax(struct inode *inode) > return false; > if (ext4_should_journal_data(inode)) > return false; > + if (ext4_is_journal_inode(inode)) > + return false; > if (ext4_has_inline_data(inode)) > return false; > if (ext4_encrypted_inode(inode)) -- Jan Kara SUSE Labs, CR