All of lore.kernel.org
 help / color / mirror / Atom feed
From: sashiko-bot@kernel.org
To: "Andrey Albershteyn" <aalbersh@kernel.org>
Cc: dsterba@suse.cz, tytso@mit.edu, linux-ext4@vger.kernel.org
Subject: Re: [PATCH v16 21/21] xfs: enable ro-compat fs-verity flag
Date: Fri, 18 Sep 2026 11:44:48 +0000	[thread overview]
Message-ID: <20260918114449.4356A1F00898@smtp.kernel.org> (raw)
In-Reply-To: <20260918111539.1003439-22-aalbersh@kernel.org>

Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [High] xfs: fsverity enablement failure bricks inode due to un-cleared XFS_DIFLAG2_VERITY
--

commit 3c41daf7bf4b1b9da289ed99189425637499f418
Author: Andrey Albershteyn <aalbersh@kernel.org>

xfs: enable ro-compat fs-verity flag

Finalize fs-verity integration in XFS by making kernel fs-verity
aware with ro-compat flag.

> diff --git a/fs/xfs/libxfs/xfs_format.h b/fs/xfs/libxfs/xfs_format.h
> index f728e7d1eb325..7190fb069d1a8 100644
> --- a/fs/xfs/libxfs/xfs_format.h
> +++ b/fs/xfs/libxfs/xfs_format.h
> @@ -378,8 +378,9 @@ xfs_sb_has_compat_feature(
>  #define XFS_SB_FEAT_RO_COMPAT_ALL \
>  		(XFS_SB_FEAT_RO_COMPAT_FINOBT | \
>  		 XFS_SB_FEAT_RO_COMPAT_RMAPBT | \
> -		 XFS_SB_FEAT_RO_COMPAT_REFLINK| \
> -		 XFS_SB_FEAT_RO_COMPAT_INOBTCNT)
> +		 XFS_SB_FEAT_RO_COMPAT_REFLINK | \
> +		 XFS_SB_FEAT_RO_COMPAT_INOBTCNT | \
> +		 XFS_SB_FEAT_RO_COMPAT_VERITY)

[Severity: High]
While reviewing the fsverity enablement, I noticed a potential issue in the
error handling path of xfs_fsverity_end_enable().

If xfs_free_eofblocks() fails, such as due to ENOMEM or quota limits, the error
path deletes the verity metadata but appears to leave the permanently committed
XFS_DIFLAG2_VERITY flag set:

fs/xfs/xfs_fsverity.c:xfs_fsverity_end_enable() {
[ ... ]
	ip->i_diflags2 |= XFS_DIFLAG2_VERITY;

	xfs_trans_log_inode(tp, ip, XFS_ILOG_CORE);
	xfs_trans_set_sync(tp);

	error = xfs_trans_commit(tp);
	xfs_iunlock(ip, XFS_ILOCK_EXCL);
	if (error)
		goto out;

	inode_set_flags(inode, S_VERITY, S_VERITY);

	/*
	 * Proactively remove unwritten extents left by COW preallocations and
	 * write preallocation in the merkle tree holes and past descriptor,
	 * and any delayed preallocations
	 */
	error = xfs_free_eofblocks(ip);
out:
	if (error) {
		int	error2;

		error2 = xfs_fsverity_delete_metadata(ip);
[ ... ]
}

Does this leave the on-disk inode permanently marked as an fsverity file while
the metadata has been deleted?

If so, could this cause subsequent attempts to open the file to fail with
-ENODATA or -EIO when fsverity_file_open() fails to find the descriptor,
resulting in localized data loss unless an offline or online repair tool clears
the flag?

-- 
Sashiko AI review · https://sashiko.dev/#/patchset/20260918111539.1003439-1-aalbersh@kernel.org?part=21

  reply	other threads:[~2026-09-18 11:44 UTC|newest]

Thread overview: 111+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-09-18 11:15 [PATCH v16 00/21] fs-verity support for XFS with post EOF merkle tree Andrey Albershteyn
2026-09-18 11:15 ` [f2fs-dev] " Andrey Albershteyn via Linux-f2fs-devel
2026-09-18 11:15 ` [PATCH v16 01/21] fsverity: report validation errors through fserror to fsnotify Andrey Albershteyn
2026-09-18 11:15   ` [f2fs-dev] " Andrey Albershteyn via Linux-f2fs-devel
2026-09-18 11:27   ` sashiko-bot
2026-09-18 11:15 ` [PATCH v16 02/21] fsverity: expose ensure_fsverity_info() Andrey Albershteyn
2026-09-18 11:15   ` [f2fs-dev] " Andrey Albershteyn via Linux-f2fs-devel
2026-09-18 11:32   ` sashiko-bot
2026-09-18 11:15 ` [PATCH v16 03/21] fsverity: pass digest size and hash of the all-zeroes block to ->write Andrey Albershteyn
2026-09-18 11:15   ` [f2fs-dev] " Andrey Albershteyn via Linux-f2fs-devel
2026-09-18 11:24   ` sashiko-bot
2026-09-18 11:15 ` [PATCH v16 04/21] fsverity: hoist pagecache_read from f2fs/ext4 to fsverity Andrey Albershteyn
2026-09-18 11:15   ` [f2fs-dev] " Andrey Albershteyn via Linux-f2fs-devel
2026-09-18 11:26   ` sashiko-bot
2026-09-18 11:15 ` [PATCH v16 05/21] fsverity: don't allow setting DAX file attribute on fsverity files Andrey Albershteyn
2026-09-18 11:15   ` [f2fs-dev] " Andrey Albershteyn via Linux-f2fs-devel
2026-09-18 11:28   ` sashiko-bot
2026-09-25  4:35   ` Eric Biggers
2026-09-25  4:35     ` [f2fs-dev] " Eric Biggers via Linux-f2fs-devel
2026-09-18 11:15 ` [PATCH v16 06/21] fsverity: hoist statx reporting of fs-verity flag Andrey Albershteyn
2026-09-18 11:15   ` [f2fs-dev] " Andrey Albershteyn via Linux-f2fs-devel
2026-09-18 11:28   ` sashiko-bot
2026-09-18 11:15 ` [PATCH v16 07/21] xfs: introduce fsverity on-disk changes Andrey Albershteyn
2026-09-18 11:15   ` [f2fs-dev] " Andrey Albershteyn via Linux-f2fs-devel
2026-09-18 11:34   ` sashiko-bot
2026-09-18 11:15 ` [PATCH v16 08/21] xfs: don't allow to enable DAX on fs-verity sealed inode Andrey Albershteyn
2026-09-18 11:15   ` [f2fs-dev] " Andrey Albershteyn via Linux-f2fs-devel
2026-09-18 11:27   ` sashiko-bot
2026-09-18 11:15 ` [PATCH v16 09/21] xfs: disable direct read path for fs-verity files Andrey Albershteyn
2026-09-18 11:15   ` [f2fs-dev] " Andrey Albershteyn via Linux-f2fs-devel
2026-09-18 11:26   ` sashiko-bot
2026-09-18 11:15 ` [PATCH v16 10/21] xfs: don't report dio_mem_align and dio_offset_align for fsverity files Andrey Albershteyn
2026-09-18 11:15   ` [f2fs-dev] " Andrey Albershteyn via Linux-f2fs-devel
2026-09-18 11:26   ` sashiko-bot
2026-09-18 11:15 ` [PATCH v16 11/21] xfs: handle fsverity I/O in write/read path Andrey Albershteyn
2026-09-18 11:15   ` [f2fs-dev] " Andrey Albershteyn via Linux-f2fs-devel
2026-09-18 11:38   ` sashiko-bot
2026-09-22  7:15   ` Christoph Hellwig
2026-09-22  7:15     ` [f2fs-dev] " Christoph Hellwig
2026-09-18 11:15 ` [PATCH v16 12/21] xfs: use read ioend for fsverity data verification Andrey Albershteyn
2026-09-18 11:15   ` [f2fs-dev] " Andrey Albershteyn via Linux-f2fs-devel
2026-09-18 11:36   ` sashiko-bot
2026-09-22  4:29   ` Darrick J. Wong
2026-09-22  4:29     ` [f2fs-dev] " Darrick J. Wong via Linux-f2fs-devel
2026-09-22  7:18   ` Christoph Hellwig
2026-09-22  7:18     ` [f2fs-dev] " Christoph Hellwig
2026-09-22  9:13     ` Andrey Albershteyn
2026-09-22  9:13       ` [f2fs-dev] " Andrey Albershteyn via Linux-f2fs-devel
2026-09-22 12:31       ` Christoph Hellwig
2026-09-22 12:31         ` [f2fs-dev] " Christoph Hellwig
2026-09-22 13:17         ` Andrey Albershteyn
2026-09-22 13:17           ` [f2fs-dev] " Andrey Albershteyn via Linux-f2fs-devel
2026-09-18 11:15 ` [PATCH v16 13/21] xfs: add XFS_BMAPI_UNWRITTEN to unmap unwritten extents in __xfs_bunmapi() Andrey Albershteyn
2026-09-18 11:15   ` [f2fs-dev] " Andrey Albershteyn via Linux-f2fs-devel
2026-09-18 11:32   ` sashiko-bot
2026-09-22  4:49     ` Darrick J. Wong
2026-09-22  4:34   ` Darrick J. Wong
2026-09-22  4:34     ` [f2fs-dev] " Darrick J. Wong via Linux-f2fs-devel
2026-09-22  7:20     ` Christoph Hellwig
2026-09-22  7:20       ` [f2fs-dev] " Christoph Hellwig
2026-09-22  8:32       ` Andrey Albershteyn
2026-09-22  8:32         ` [f2fs-dev] " Andrey Albershteyn via Linux-f2fs-devel
2026-09-18 11:15 ` [PATCH v16 14/21] xfs: don't remove written extents past EOF on fsverity inodes Andrey Albershteyn
2026-09-18 11:15   ` [f2fs-dev] " Andrey Albershteyn via Linux-f2fs-devel
2026-09-18 11:41   ` sashiko-bot
2026-09-22  4:37   ` Darrick J. Wong
2026-09-22  4:37     ` [f2fs-dev] " Darrick J. Wong via Linux-f2fs-devel
2026-09-22  8:33     ` Andrey Albershteyn
2026-09-22  8:33       ` [f2fs-dev] " Andrey Albershteyn via Linux-f2fs-devel
2026-09-22 11:29       ` Andrey Albershteyn
2026-09-22 11:29         ` [f2fs-dev] " Andrey Albershteyn via Linux-f2fs-devel
2026-09-18 11:15 ` [PATCH v16 15/21] xfs: add fs-verity support Andrey Albershteyn
2026-09-18 11:15   ` [f2fs-dev] " Andrey Albershteyn via Linux-f2fs-devel
2026-09-18 11:43   ` sashiko-bot
2026-09-22  4:50     ` Darrick J. Wong
2026-09-22  4:45   ` Darrick J. Wong
2026-09-22  4:45     ` [f2fs-dev] " Darrick J. Wong via Linux-f2fs-devel
2026-09-22  9:27     ` Andrey Albershteyn
2026-09-22  9:27       ` [f2fs-dev] " Andrey Albershteyn via Linux-f2fs-devel
2026-09-22  7:22   ` Christoph Hellwig
2026-09-22  7:22     ` [f2fs-dev] " Christoph Hellwig
2026-09-22  8:56     ` Andrey Albershteyn
2026-09-22  8:56       ` [f2fs-dev] " Andrey Albershteyn via Linux-f2fs-devel
2026-09-22 12:32       ` Christoph Hellwig
2026-09-22 12:32         ` [f2fs-dev] " Christoph Hellwig
2026-09-22 13:27         ` Andrey Albershteyn
2026-09-22 13:27           ` [f2fs-dev] " Andrey Albershteyn via Linux-f2fs-devel
2026-09-23  4:44           ` Christoph Hellwig
2026-09-23  4:44             ` [f2fs-dev] " Christoph Hellwig
2026-09-18 11:15 ` [PATCH v16 16/21] xfs: initialize fs-verity on file open Andrey Albershteyn
2026-09-18 11:15   ` [f2fs-dev] " Andrey Albershteyn via Linux-f2fs-devel
2026-09-18 11:33   ` sashiko-bot
2026-09-18 11:15 ` [PATCH v16 17/21] xfs: add fs-verity ioctls Andrey Albershteyn
2026-09-18 11:15   ` [f2fs-dev] " Andrey Albershteyn via Linux-f2fs-devel
2026-09-18 11:31   ` sashiko-bot
2026-09-18 11:15 ` [PATCH v16 18/21] xfs: advertise fs-verity being available on filesystem Andrey Albershteyn
2026-09-18 11:15   ` [f2fs-dev] " Andrey Albershteyn via Linux-f2fs-devel
2026-09-18 11:30   ` sashiko-bot
2026-09-18 11:15 ` [PATCH v16 19/21] xfs: check and repair the verity inode flag state Andrey Albershteyn
2026-09-18 11:15   ` [f2fs-dev] " Andrey Albershteyn via Linux-f2fs-devel
2026-09-18 11:40   ` sashiko-bot
2026-09-18 11:15 ` [PATCH v16 20/21] xfs: introduce health state for corrupted fsverity metadata Andrey Albershteyn
2026-09-18 11:15   ` [f2fs-dev] " Andrey Albershteyn via Linux-f2fs-devel
2026-09-18 11:34   ` sashiko-bot
2026-09-18 11:15 ` [PATCH v16 21/21] xfs: enable ro-compat fs-verity flag Andrey Albershteyn
2026-09-18 11:15   ` [f2fs-dev] " Andrey Albershteyn via Linux-f2fs-devel
2026-09-18 11:44   ` sashiko-bot [this message]
2026-09-22  4:51 ` [PATCH v16 00/21] fs-verity support for XFS with post EOF merkle tree Darrick J. Wong
2026-09-22  4:51   ` [f2fs-dev] " Darrick J. Wong via Linux-f2fs-devel
2026-09-22  9:00   ` Andrey Albershteyn
2026-09-22  9:00     ` [f2fs-dev] " Andrey Albershteyn via Linux-f2fs-devel

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=20260918114449.4356A1F00898@smtp.kernel.org \
    --to=sashiko-bot@kernel.org \
    --cc=aalbersh@kernel.org \
    --cc=dsterba@suse.cz \
    --cc=linux-ext4@vger.kernel.org \
    --cc=sashiko-reviews@lists.linux.dev \
    --cc=tytso@mit.edu \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.