Linux EXT4 FS development
 help / color / mirror / Atom feed
From: Eric Biggers <ebiggers@kernel.org>
To: Andrey Albershteyn <aalbersh@kernel.org>
Cc: linux-xfs@vger.kernel.org, fsverity@lists.linux.dev,
	linux-fsdevel@vger.kernel.org, hch@lst.de,
	linux-ext4@vger.kernel.org,
	linux-f2fs-devel@lists.sourceforge.net,
	linux-btrfs@vger.kernel.org, djwong@kernel.org
Subject: Re: [PATCH v13 06/23] fsverity: don't allow setting DAX file attribute on fsverity files
Date: Fri, 24 Jul 2026 16:55:28 -0700	[thread overview]
Message-ID: <20260724235528.GD1901@sol> (raw)
In-Reply-To: <20260721184346.416657-7-aalbersh@kernel.org>

On Tue, Jul 21, 2026 at 08:40:43PM +0200, Andrey Albershteyn wrote:
> When fsverity is enabled on the file, with FS_IOC_ENABLE_VERITY ioctl(),
> it checks if file has DAX enabled and fails if that's true. However, the
> opposite case is not checked.
> 
> Signed-off-by: Andrey Albershteyn <aalbersh@kernel.org>
> ---
>  fs/file_attr.c | 5 +++++
>  1 file changed, 5 insertions(+)
> 
> diff --git a/fs/file_attr.c b/fs/file_attr.c
> index bfb00d256dd5..5424ec4e3949 100644
> --- a/fs/file_attr.c
> +++ b/fs/file_attr.c
> @@ -246,6 +246,11 @@ static int fileattr_set_prepare(struct inode *inode,
>  	if (fa->fsx_cowextsize == 0)
>  		fa->fsx_xflags &= ~FS_XFLAG_COWEXTSIZE;
>  
> +	/* Can not enable DAX on fsverity file */
> +	if ((old_ma->fsx_xflags & FS_XFLAG_VERITY) &&
> +			fa->fsx_xflags & FS_XFLAG_DAX)
> +		return -EINVAL;
> +

As mentioned elsewhere, this is actually already checked in ext4, and
the commit message should mention this.

Also, I notice this function already checks conditions on when the DAX
flag can be enabled:

        /*                                                                       
         * It is only valid to set the DAX flag on regular files and             
         * directories on filesystems.                                           
         */                                                                      
        if ((fa->fsx_xflags & FS_XFLAG_DAX) &&                                   
            !(S_ISREG(inode->i_mode) || S_ISDIR(inode->i_mode)))                 
                return -EINVAL;                                                  

Could we combine those into something like the following so the DAX
enablement conditions are in one place?

        if (fa->fsx_xflags & FS_XFLAG_DAX) {                                     
                if (!S_ISREG(inode->i_mode) && !S_ISDIR(inode->i_mode))          
                        return -EINVAL;                                          
                if (old_ma->fsx_xflags & FS_XFLAG_VERITY)                        
                        return -EINVAL;                                          
        }                                                                        

- Eric

  parent reply	other threads:[~2026-07-24 23:57 UTC|newest]

Thread overview: 35+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-07-21 18:40 [PATCH v13 00/23] fs-verity support for XFS with post EOF merkle tree Andrey Albershteyn
2026-07-21 18:40 ` [PATCH v13 01/23] fsverity: report validation errors through fserror to fsnotify Andrey Albershteyn
2026-07-21 18:40 ` [PATCH v13 02/23] fsverity: expose ensure_fsverity_info() Andrey Albershteyn
2026-07-24 23:37   ` Eric Biggers
2026-07-21 18:40 ` [PATCH v13 03/23] fsverity: pass digest size and hash of the all-zeroes block to ->write Andrey Albershteyn
2026-07-21 18:40 ` [PATCH v13 04/23] fsverity: hoist pagecache_read from f2fs/ext4 to fsverity Andrey Albershteyn
2026-07-21 18:40 ` [PATCH v13 05/23] fsverity: improve flushing performance of fsverity_fill_zerohash Andrey Albershteyn
2026-07-24 13:13   ` Christoph Hellwig
2026-07-21 18:40 ` [PATCH v13 06/23] fsverity: don't allow setting DAX file attribute on fsverity files Andrey Albershteyn
2026-07-24 13:13   ` Christoph Hellwig
2026-07-24 14:19     ` Eric Biggers
2026-07-24 23:55   ` Eric Biggers [this message]
2026-07-21 18:40 ` [PATCH v13 07/23] fs,fsverity: remove check for fsverity being enabled in setattr_prepare() Andrey Albershteyn
2026-07-24 13:14   ` Christoph Hellwig
2026-07-24 23:25   ` Eric Biggers
2026-07-21 18:40 ` [PATCH v13 08/23] fsverity: hoist statx reporting of fs-verity flag Andrey Albershteyn
2026-07-24 23:43   ` Eric Biggers
2026-07-21 18:40 ` [PATCH v13 09/23] xfs: introduce fsverity on-disk changes Andrey Albershteyn
2026-07-21 18:40 ` [PATCH v13 10/23] xfs: don't allow to enable DAX on fs-verity sealed inode Andrey Albershteyn
2026-07-21 18:40 ` [PATCH v13 11/23] xfs: disable direct read path for fs-verity files Andrey Albershteyn
2026-07-24 13:16   ` Christoph Hellwig
2026-07-21 18:40 ` [PATCH v13 12/23] xfs: don't report dio_mem_align and dio_offset_align for fsverity files Andrey Albershteyn
2026-07-21 18:40 ` [PATCH v13 13/23] xfs: handle fsverity I/O in write/read path Andrey Albershteyn
2026-07-21 18:40 ` [PATCH v13 14/23] xfs: always prioritize fsverity metadata ioends in ioend completion Andrey Albershteyn
2026-07-21 18:40 ` [PATCH v13 15/23] xfs: use read ioend for fsverity data verification Andrey Albershteyn
2026-07-21 18:40 ` [PATCH v13 16/23] xfs: add fs-verity support Andrey Albershteyn
2026-07-24 13:17   ` Christoph Hellwig
2026-07-21 18:40 ` [PATCH v13 17/23] xfs: remove unwritten extents after preallocations in fsverity metadata Andrey Albershteyn
2026-07-24 13:20   ` Christoph Hellwig
2026-07-21 18:40 ` [PATCH v13 18/23] xfs: initialize fs-verity on file open Andrey Albershteyn
2026-07-21 18:40 ` [PATCH v13 19/23] xfs: add fs-verity ioctls Andrey Albershteyn
2026-07-21 18:40 ` [PATCH v13 20/23] xfs: advertise fs-verity being available on filesystem Andrey Albershteyn
2026-07-21 18:40 ` [PATCH v13 21/23] xfs: check and repair the verity inode flag state Andrey Albershteyn
2026-07-21 18:40 ` [PATCH v13 22/23] xfs: introduce health state for corrupted fsverity metadata Andrey Albershteyn
2026-07-21 18:41 ` [PATCH v13 23/23] xfs: enable ro-compat fs-verity flag Andrey Albershteyn

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20260724235528.GD1901@sol \
    --to=ebiggers@kernel.org \
    --cc=aalbersh@kernel.org \
    --cc=djwong@kernel.org \
    --cc=fsverity@lists.linux.dev \
    --cc=hch@lst.de \
    --cc=linux-btrfs@vger.kernel.org \
    --cc=linux-ext4@vger.kernel.org \
    --cc=linux-f2fs-devel@lists.sourceforge.net \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-xfs@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox