From: Andrey Albershteyn <aalbersh@kernel.org>
To: linux-xfs@vger.kernel.org, fsverity@lists.linux.dev,
linux-fsdevel@vger.kernel.org, ebiggers@kernel.org
Cc: Andrey Albershteyn <aalbersh@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: [PATCH v14 02/21] fsverity: expose ensure_fsverity_info()
Date: Mon, 3 Aug 2026 22:07:52 +0200 [thread overview]
Message-ID: <20260803200820.393203-3-aalbersh@kernel.org> (raw)
In-Reply-To: <20260803200820.393203-1-aalbersh@kernel.org>
This function will be used by XFS's scrub to force fsverity activation,
therefore, to read fsverity context.
Reviewed-by: Darrick J. Wong <djwong@kernel.org>
Acked-by: Eric Biggers <ebiggers@kernel.org>
Signed-off-by: Andrey Albershteyn <aalbersh@kernel.org>
Reviewed-by: Christoph Hellwig <hch@lst.de>
---
fs/verity/open.c | 26 ++++++++++++++++++++++++--
include/linux/fsverity.h | 2 ++
2 files changed, 26 insertions(+), 2 deletions(-)
diff --git a/fs/verity/open.c b/fs/verity/open.c
index d0c56a7faa3b..4f06697f5bf4 100644
--- a/fs/verity/open.c
+++ b/fs/verity/open.c
@@ -347,7 +347,28 @@ int fsverity_get_descriptor(struct inode *inode,
return 0;
}
-static int ensure_verity_info(struct inode *inode)
+/**
+ * fsverity_ensure_verity_info() - cache verity info if it's not already cached
+ * @inode: the inode for which verity info should be cached
+ *
+ * Ensure this inode has verity info attached to it, it's assumed the inode
+ * already has fsverity enabled. Read fsverity descriptor and creates verity
+ * based on that.
+ *
+ * This needs to be called at least once before any of the inode's data
+ * can be verified (and thus read at all) or the inode's fsverity digest
+ * retrieved. fsverity_file_open() calls this already, which handles
+ * normal file accesses. If a filesystem does any internal (i.e. not
+ * associated with a file descriptor) reads of the file's data or
+ * fsverity digest, it must call this explicitly before doing so.
+ *
+ * In case filesystem supports both fscrypt and fsverity, this should be called
+ * after fscrypt's encryption key is set up. Otherwise, the fsverity metadata is
+ * still encrypted. See fscrypt_file_open().
+ *
+ * Return: 0 on success, -errno on failure
+ */
+int fsverity_ensure_verity_info(struct inode *inode)
{
struct fsverity_info *vi = fsverity_get_info(inode), *found;
struct fsverity_descriptor *desc;
@@ -383,12 +404,13 @@ static int ensure_verity_info(struct inode *inode)
kfree(desc);
return err;
}
+EXPORT_SYMBOL_GPL(fsverity_ensure_verity_info);
int __fsverity_file_open(struct inode *inode, struct file *filp)
{
if (filp->f_mode & FMODE_WRITE)
return -EPERM;
- return ensure_verity_info(inode);
+ return fsverity_ensure_verity_info(inode);
}
EXPORT_SYMBOL_GPL(__fsverity_file_open);
diff --git a/include/linux/fsverity.h b/include/linux/fsverity.h
index 6c467ded9751..3c3250f6f272 100644
--- a/include/linux/fsverity.h
+++ b/include/linux/fsverity.h
@@ -317,6 +317,8 @@ static inline int fsverity_file_open(struct inode *inode, struct file *filp)
return 0;
}
+int fsverity_ensure_verity_info(struct inode *inode);
+
void fsverity_cleanup_inode(struct inode *inode);
struct page *generic_read_merkle_tree_page(struct inode *inode, pgoff_t index);
--
2.54.0
WARNING: multiple messages have this Message-ID (diff)
From: Andrey Albershteyn via Linux-f2fs-devel <linux-f2fs-devel@lists.sourceforge.net>
To: linux-xfs@vger.kernel.org, fsverity@lists.linux.dev,
linux-fsdevel@vger.kernel.org, ebiggers@kernel.org
Cc: Andrey Albershteyn <aalbersh@kernel.org>,
djwong@kernel.org, linux-f2fs-devel@lists.sourceforge.net,
linux-ext4@vger.kernel.org, hch@lst.de,
linux-btrfs@vger.kernel.org
Subject: [f2fs-dev] [PATCH v14 02/21] fsverity: expose ensure_fsverity_info()
Date: Mon, 3 Aug 2026 22:07:52 +0200 [thread overview]
Message-ID: <20260803200820.393203-3-aalbersh@kernel.org> (raw)
In-Reply-To: <20260803200820.393203-1-aalbersh@kernel.org>
This function will be used by XFS's scrub to force fsverity activation,
therefore, to read fsverity context.
Reviewed-by: Darrick J. Wong <djwong@kernel.org>
Acked-by: Eric Biggers <ebiggers@kernel.org>
Signed-off-by: Andrey Albershteyn <aalbersh@kernel.org>
Reviewed-by: Christoph Hellwig <hch@lst.de>
---
fs/verity/open.c | 26 ++++++++++++++++++++++++--
include/linux/fsverity.h | 2 ++
2 files changed, 26 insertions(+), 2 deletions(-)
diff --git a/fs/verity/open.c b/fs/verity/open.c
index d0c56a7faa3b..4f06697f5bf4 100644
--- a/fs/verity/open.c
+++ b/fs/verity/open.c
@@ -347,7 +347,28 @@ int fsverity_get_descriptor(struct inode *inode,
return 0;
}
-static int ensure_verity_info(struct inode *inode)
+/**
+ * fsverity_ensure_verity_info() - cache verity info if it's not already cached
+ * @inode: the inode for which verity info should be cached
+ *
+ * Ensure this inode has verity info attached to it, it's assumed the inode
+ * already has fsverity enabled. Read fsverity descriptor and creates verity
+ * based on that.
+ *
+ * This needs to be called at least once before any of the inode's data
+ * can be verified (and thus read at all) or the inode's fsverity digest
+ * retrieved. fsverity_file_open() calls this already, which handles
+ * normal file accesses. If a filesystem does any internal (i.e. not
+ * associated with a file descriptor) reads of the file's data or
+ * fsverity digest, it must call this explicitly before doing so.
+ *
+ * In case filesystem supports both fscrypt and fsverity, this should be called
+ * after fscrypt's encryption key is set up. Otherwise, the fsverity metadata is
+ * still encrypted. See fscrypt_file_open().
+ *
+ * Return: 0 on success, -errno on failure
+ */
+int fsverity_ensure_verity_info(struct inode *inode)
{
struct fsverity_info *vi = fsverity_get_info(inode), *found;
struct fsverity_descriptor *desc;
@@ -383,12 +404,13 @@ static int ensure_verity_info(struct inode *inode)
kfree(desc);
return err;
}
+EXPORT_SYMBOL_GPL(fsverity_ensure_verity_info);
int __fsverity_file_open(struct inode *inode, struct file *filp)
{
if (filp->f_mode & FMODE_WRITE)
return -EPERM;
- return ensure_verity_info(inode);
+ return fsverity_ensure_verity_info(inode);
}
EXPORT_SYMBOL_GPL(__fsverity_file_open);
diff --git a/include/linux/fsverity.h b/include/linux/fsverity.h
index 6c467ded9751..3c3250f6f272 100644
--- a/include/linux/fsverity.h
+++ b/include/linux/fsverity.h
@@ -317,6 +317,8 @@ static inline int fsverity_file_open(struct inode *inode, struct file *filp)
return 0;
}
+int fsverity_ensure_verity_info(struct inode *inode);
+
void fsverity_cleanup_inode(struct inode *inode);
struct page *generic_read_merkle_tree_page(struct inode *inode, pgoff_t index);
--
2.54.0
_______________________________________________
Linux-f2fs-devel mailing list
Linux-f2fs-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel
next prev parent reply other threads:[~2026-08-03 20:09 UTC|newest]
Thread overview: 96+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-08-03 20:07 [PATCH v14 00/21] fs-verity support for XFS with post EOF merkle tree Andrey Albershteyn
2026-08-03 20:07 ` [f2fs-dev] " Andrey Albershteyn via Linux-f2fs-devel
2026-08-03 20:07 ` [PATCH v14 01/21] fsverity: report validation errors through fserror to fsnotify Andrey Albershteyn
2026-08-03 20:07 ` [f2fs-dev] " Andrey Albershteyn via Linux-f2fs-devel
2026-08-03 20:07 ` Andrey Albershteyn [this message]
2026-08-03 20:07 ` [f2fs-dev] [PATCH v14 02/21] fsverity: expose ensure_fsverity_info() Andrey Albershteyn via Linux-f2fs-devel
2026-08-03 20:07 ` [PATCH v14 03/21] fsverity: pass digest size and hash of the all-zeroes block to ->write Andrey Albershteyn
2026-08-03 20:07 ` [f2fs-dev] " Andrey Albershteyn via Linux-f2fs-devel
2026-08-03 20:07 ` [PATCH v14 04/21] fsverity: hoist pagecache_read from f2fs/ext4 to fsverity Andrey Albershteyn
2026-08-03 20:07 ` [f2fs-dev] " Andrey Albershteyn via Linux-f2fs-devel
2026-08-03 20:07 ` [PATCH v14 05/21] fsverity: improve flushing performance of fsverity_fill_zerohash Andrey Albershteyn
2026-08-03 20:07 ` [f2fs-dev] " Andrey Albershteyn via Linux-f2fs-devel
2026-08-04 17:42 ` Christoph Hellwig
2026-08-04 17:42 ` [f2fs-dev] " Christoph Hellwig
2026-08-04 18:37 ` Eric Biggers
2026-08-04 18:37 ` [f2fs-dev] " Eric Biggers via Linux-f2fs-devel
2026-08-04 18:57 ` Eric Biggers
2026-08-04 18:57 ` [f2fs-dev] " Eric Biggers via Linux-f2fs-devel
2026-08-04 19:00 ` Darrick J. Wong
2026-08-04 19:00 ` [f2fs-dev] " Darrick J. Wong via Linux-f2fs-devel
2026-08-04 18:01 ` Darrick J. Wong
2026-08-04 18:01 ` [f2fs-dev] " Darrick J. Wong via Linux-f2fs-devel
2026-08-04 18:46 ` Matthew Wilcox
2026-08-04 18:46 ` [f2fs-dev] " Matthew Wilcox
2026-08-04 18:56 ` Darrick J. Wong
2026-08-04 18:56 ` [f2fs-dev] " Darrick J. Wong via Linux-f2fs-devel
2026-08-04 19:28 ` Matthew Wilcox
2026-08-04 19:28 ` [f2fs-dev] " Matthew Wilcox
2026-08-10 10:12 ` Andrey Albershteyn via Linux-f2fs-devel
2026-08-10 10:12 ` Andrey Albershteyn
2026-08-03 20:07 ` [PATCH v14 06/21] fsverity: don't allow setting DAX file attribute on fsverity files Andrey Albershteyn
2026-08-03 20:07 ` [f2fs-dev] " Andrey Albershteyn via Linux-f2fs-devel
2026-08-04 18:02 ` Darrick J. Wong
2026-08-04 18:02 ` [f2fs-dev] " Darrick J. Wong via Linux-f2fs-devel
2026-08-03 20:07 ` [PATCH v14 07/21] fsverity: hoist statx reporting of fs-verity flag Andrey Albershteyn
2026-08-03 20:07 ` [f2fs-dev] " Andrey Albershteyn via Linux-f2fs-devel
2026-08-04 17:39 ` Christoph Hellwig
2026-08-04 17:39 ` [f2fs-dev] " Christoph Hellwig
2026-08-04 18:02 ` Darrick J. Wong
2026-08-04 18:02 ` [f2fs-dev] " Darrick J. Wong via Linux-f2fs-devel
2026-08-03 20:07 ` [PATCH v14 08/21] xfs: introduce fsverity on-disk changes Andrey Albershteyn
2026-08-03 20:07 ` [f2fs-dev] " Andrey Albershteyn via Linux-f2fs-devel
2026-08-03 20:07 ` [PATCH v14 09/21] xfs: don't allow to enable DAX on fs-verity sealed inode Andrey Albershteyn
2026-08-03 20:07 ` [f2fs-dev] " Andrey Albershteyn via Linux-f2fs-devel
2026-08-03 20:08 ` [PATCH v14 10/21] xfs: disable direct read path for fs-verity files Andrey Albershteyn
2026-08-03 20:08 ` [f2fs-dev] " Andrey Albershteyn via Linux-f2fs-devel
2026-08-03 20:08 ` [PATCH v14 11/21] xfs: don't report dio_mem_align and dio_offset_align for fsverity files Andrey Albershteyn
2026-08-03 20:08 ` [f2fs-dev] " Andrey Albershteyn via Linux-f2fs-devel
2026-08-04 17:43 ` Christoph Hellwig
2026-08-04 17:43 ` [f2fs-dev] " Christoph Hellwig
2026-08-04 17:50 ` Darrick J. Wong
2026-08-04 17:50 ` [f2fs-dev] " Darrick J. Wong via Linux-f2fs-devel
2026-08-04 18:29 ` Eric Biggers
2026-08-04 18:29 ` [f2fs-dev] " Eric Biggers via Linux-f2fs-devel
2026-08-04 18:24 ` Eric Biggers
2026-08-04 18:24 ` [f2fs-dev] " Eric Biggers via Linux-f2fs-devel
2026-08-10 8:33 ` Andrey Albershteyn
2026-08-10 8:33 ` [f2fs-dev] " Andrey Albershteyn via Linux-f2fs-devel
2026-08-03 20:08 ` [PATCH v14 12/21] xfs: handle fsverity I/O in write/read path Andrey Albershteyn
2026-08-03 20:08 ` [f2fs-dev] " Andrey Albershteyn via Linux-f2fs-devel
2026-08-04 18:27 ` Darrick J. Wong via Linux-f2fs-devel
2026-08-04 18:27 ` Darrick J. Wong
2026-08-03 20:08 ` [PATCH v14 13/21] xfs: use read ioend for fsverity data verification Andrey Albershteyn
2026-08-03 20:08 ` [f2fs-dev] " Andrey Albershteyn via Linux-f2fs-devel
2026-08-04 18:36 ` Darrick J. Wong
2026-08-04 18:36 ` [f2fs-dev] " Darrick J. Wong via Linux-f2fs-devel
2026-08-10 10:01 ` Andrey Albershteyn
2026-08-10 10:01 ` [f2fs-dev] " Andrey Albershteyn via Linux-f2fs-devel
2026-08-10 18:31 ` Darrick J. Wong
2026-08-10 18:31 ` [f2fs-dev] " Darrick J. Wong via Linux-f2fs-devel
2026-08-03 20:08 ` [PATCH v14 14/21] xfs: add flags to xfs_free_eofblocks() to pass down to block processing Andrey Albershteyn
2026-08-03 20:08 ` [f2fs-dev] " Andrey Albershteyn via Linux-f2fs-devel
2026-08-04 18:18 ` Darrick J. Wong via Linux-f2fs-devel
2026-08-04 18:18 ` Darrick J. Wong
2026-08-10 10:57 ` Andrey Albershteyn
2026-08-10 10:57 ` [f2fs-dev] " Andrey Albershteyn via Linux-f2fs-devel
2026-08-03 20:08 ` [PATCH v14 15/21] xfs: add fs-verity support Andrey Albershteyn
2026-08-03 20:08 ` [f2fs-dev] " Andrey Albershteyn via Linux-f2fs-devel
2026-08-03 20:08 ` [PATCH v14 16/21] xfs: initialize fs-verity on file open Andrey Albershteyn
2026-08-03 20:08 ` [f2fs-dev] " Andrey Albershteyn via Linux-f2fs-devel
2026-08-03 20:08 ` [PATCH v14 17/21] xfs: add fs-verity ioctls Andrey Albershteyn
2026-08-03 20:08 ` [f2fs-dev] " Andrey Albershteyn via Linux-f2fs-devel
2026-08-03 20:08 ` [PATCH v14 18/21] xfs: advertise fs-verity being available on filesystem Andrey Albershteyn
2026-08-03 20:08 ` [f2fs-dev] " Andrey Albershteyn via Linux-f2fs-devel
2026-08-03 20:08 ` [PATCH v14 19/21] xfs: check and repair the verity inode flag state Andrey Albershteyn
2026-08-03 20:08 ` [f2fs-dev] " Andrey Albershteyn via Linux-f2fs-devel
2026-08-03 20:08 ` [PATCH v14 20/21] xfs: introduce health state for corrupted fsverity metadata Andrey Albershteyn
2026-08-03 20:08 ` [f2fs-dev] " Andrey Albershteyn via Linux-f2fs-devel
2026-08-03 20:08 ` [f2fs-dev] [PATCH v14 21/21] xfs: enable ro-compat fs-verity flag Andrey Albershteyn via Linux-f2fs-devel
2026-08-03 20:08 ` Andrey Albershteyn
2026-08-04 17:35 ` [PATCH v14 00/21] fs-verity support for XFS with post EOF merkle tree Christoph Hellwig
2026-08-04 17:35 ` [f2fs-dev] " Christoph Hellwig
2026-08-04 17:52 ` Darrick J. Wong
2026-08-04 17:52 ` [f2fs-dev] " Darrick J. Wong via Linux-f2fs-devel
2026-08-10 8:28 ` Andrey Albershteyn
2026-08-10 8:28 ` [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=20260803200820.393203-3-aalbersh@kernel.org \
--to=aalbersh@kernel.org \
--cc=djwong@kernel.org \
--cc=ebiggers@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 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.