Received: by 2002:a25:1985:0:0:0:0:0 with SMTP id 127csp711069ybz; Wed, 15 Apr 2020 17:15:30 -0700 (PDT) X-Google-Smtp-Source: APiQypJuBqihcVpL9vhFB+4a6QJWWqXeyUoe8ET+z3tBqz5rnyUBWWdDHvaJ+Q+kLl+Qf7Hdq5n7 X-Received: by 2002:a05:6402:1496:: with SMTP id e22mr17424980edv.301.1586996130083; Wed, 15 Apr 2020 17:15:30 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1586996130; cv=none; d=google.com; s=arc-20160816; b=DIKNkLxPpPyfBbD0gFcYoOgXvUZRv6m/ThNGWLxkN0ep/RhQgDDoB0BqRI1Bsb7Cub GCMgXNgHG9a0TVk3hfM05rlMYwxMWwgb9lVofi2wAUqIVrZvbAq/i1RoQyWzBoQUmSoF +Kk2BHA4hL7CheobrTMyjQ86jo04uHs6WRrxIIMJfQjfD8BMnpM+SEVz7PpBIh98uSwM P09/10/dgxMmp8HtXI/ByXApwbtxbjhg/54TKteM7LhSXEXljFXsknpLzd5PY9lngOyT DauhRqGM7P8M/O3LpNqeE3bamRBrxF0+MDNUShhfw1FaGwBu+b0eH6mhfSsPgVlta0RS 5h/w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:in-reply-to:content-disposition :mime-version:references:message-id:subject:cc:to:from:date; bh=rbQF6LEEs3N7t5yr6PI1a6BXWTBnTLrQVfWSHsAqxyI=; b=aaIjD4fhn0lQMEzuCW2cL1LK1WwRseOiqh7kkV/U52DT64gkr6x6AWAiZVTs2Ph0AW MBpvdJW8wXBJwPghMSMU9mdIg3Mwau9cFnCKfDVkua2/JljbISRfsEYAasT2MuY+OmEJ pBPdqaOSTINAPOLwBHAOIj289FHPSqTJQGPFjjKmi0UutIsTSyS9WCCFYTTOho02jA3r N0Ry0db22TrfNHxe1r0YuJ8kg1SuO5pKSxjATeaMiZ/dxC/FSuioibdMsNZcXHRrM+N6 NJOe4pF66YFGIiXsS/BIughLt+vRqKXg9katD3sjLuVAMtaBuVBNsm5rVkH5ThyiArB4 2T4g== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-ext4-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-ext4-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id d25si10360846edz.254.2020.04.15.17.15.07; Wed, 15 Apr 2020 17:15:30 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-ext4-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-ext4-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-ext4-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1414972AbgDOPzt (ORCPT + 99 others); Wed, 15 Apr 2020 11:55:49 -0400 Received: from outgoing-auth-1.mit.edu ([18.9.28.11]:59571 "EHLO outgoing.mit.edu" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1414948AbgDOPzr (ORCPT ); Wed, 15 Apr 2020 11:55:47 -0400 Received: from callcc.thunk.org (pool-72-93-95-157.bstnma.fios.verizon.net [72.93.95.157]) (authenticated bits=0) (User authenticated as tytso@ATHENA.MIT.EDU) by outgoing.mit.edu (8.14.7/8.12.4) with ESMTP id 03FFtPQK002015 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 15 Apr 2020 11:55:26 -0400 Received: by callcc.thunk.org (Postfix, from userid 15806) id 4E92242013D; Wed, 15 Apr 2020 11:55:25 -0400 (EDT) Date: Wed, 15 Apr 2020 11:55:25 -0400 From: "Theodore Y. Ts'o" To: Jan Kara Cc: ira.weiny@intel.com, linux-kernel@vger.kernel.org, "Darrick J. Wong" , Dan Williams , Dave Chinner , Christoph Hellwig , Jeff Moyer , linux-ext4@vger.kernel.org, linux-xfs@vger.kernel.org, linux-fsdevel@vger.kernel.org Subject: Re: [PATCH RFC 2/8] fs/ext4: Disallow verity if inode is DAX Message-ID: <20200415155525.GI90651@mit.edu> References: <20200414040030.1802884-1-ira.weiny@intel.com> <20200414040030.1802884-3-ira.weiny@intel.com> <20200415120002.GE6126@quack2.suse.cz> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20200415120002.GE6126@quack2.suse.cz> Sender: linux-ext4-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-ext4@vger.kernel.org On Wed, Apr 15, 2020 at 02:00:02PM +0200, Jan Kara wrote: > On Mon 13-04-20 21:00:24, ira.weiny@intel.com wrote: > > From: Ira Weiny > > > > Verity and DAX are incompatible. Changing the DAX mode due to a verity > > flag change is wrong without a corresponding address_space_operations > > update. > > > > Make the 2 options mutually exclusive by returning an error if DAX was > > set first. > > > > (Setting DAX is already disabled if Verity is set first.) > > > > Signed-off-by: Ira Weiny > > --- > > fs/ext4/verity.c | 3 +++ > > 1 file changed, 3 insertions(+) > > > > diff --git a/fs/ext4/verity.c b/fs/ext4/verity.c > > index dc5ec724d889..ce3f9a198d3b 100644 > > --- a/fs/ext4/verity.c > > +++ b/fs/ext4/verity.c > > @@ -113,6 +113,9 @@ static int ext4_begin_enable_verity(struct file *filp) > > handle_t *handle; > > int err; > > > > + if (WARN_ON_ONCE(IS_DAX(inode))) > > + return -EINVAL; > > + > > Hum, one question, is there a reason for WARN_ON_ONCE()? If I understand > correctly, user could normally trigger this, couldn't he? Tes, the WARN_ON_ONCE isn't appropriate here. We should also disallow setting the DAX flag if the inode has the verity flag set already. And if we need to decide what to if the file system is mounted with "-o dax=always" and the verity file system feature is enabled. We could either (a) reject the mount with if the mount option is given and the file system can have verity files, or (b) make "-o dax=always" mean "-o dax=mostly_always" and treat verity files as not using dax even when dax=always is selected. Also, in theory, we *could* support dax and verity files, but verifying the crypto checksums of all of the pages when the file is first accessed, and then marking that in a flag in the in-inode flag. Or we could have a per-page flag stored somewhere that indicates that the page has been verified, so that we can on-demand verify the integrity of the page. Given that verity files are read-only, the main reason why someone might want to use dax && verity would be to reduce page cache overhead of system files; if executing out of dax pages doesn't have significant performance impacts, this might be something which might be a nice-to-have. I don't think we need to worry about this for now; if there are use cases where mobile devices want to use dax && verity, we can let them figure out how to make it work. I'm just pointing out that it's not really a completely insane combination. Cheers, - Ted