[PATCH v6 01/22] fsverity: report validation errors through fserror to fsnotify

Andrey Albershteyn
2026-03-31T21:28:38Z

Reported verification errors to fsnotify through recently added fserror
interface.

Signed-off-by: Andrey Albershteyn <aalbersh@kernel.org>
Reviewed-by: "Darrick J. Wong" <djwong@kernel.org>
Reviewed-by: Christoph Hellwig <hch@lst.de>
---
fs/verity/verify.c | 4 ++++
1 file changed, 4 insertions(+)

diff --git a/fs/verity/verify.c b/fs/verity/verify.c
index 4004a1d42875..4ea494da694f 100644
--- a/fs/verity/verify.c
+++ b/fs/verity/verify.c
@@ -9,6 +9,7 @@

#include <linux/bio.h>
#include <linux/export.h>
+#include <linux/fserror.h>

#define FS_VERITY_MAX_PENDING_BLOCKS 2

@@ -203,6 +204,8 @@ static bool verify_data_block(struct fsverity_info *vi,
* to verify that any data blocks fully past EOF are all zeroes.
*/
if (memchr_inv(dblock->data, 0, params->block_size)) {
+ fserror_report_data_lost(inode, data_pos,
+ params->block_size, GFP_NOFS);
fsverity_err(inode,
"FILE CORRUPTED! Data past EOF is not zeroed");
return false;
@@ -312,6 +315,7 @@ static bool verify_data_block(struct fsverity_info *vi,
data_pos, level - 1, params->hash_alg->name, hsize, want_hash,
params->hash_alg->name, hsize,
level == 0 ? dblock->real_hash : real_hash);
+ fserror_report_data_lost(inode, data_pos, params->block_size, GFP_NOFS);
error:
for (; level > 0; level--) {
kunmap_local(hblocks[level - 1].addr);
--
2.51.2