summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDarrick J. Wong <djwong@kernel.org>2026-01-12 16:32:12 -0800
committerChristian Brauner <brauner@kernel.org>2026-01-13 09:58:01 +0100
commit94503211d2fdcc5183d01c2719258a7795cdecb0 (patch)
treea98ab5a22d0907dc6d690ea1106543ffe10e4935
parentefd87a10072966e1555e1288a570c883c73182c3 (diff)
xfs: translate fsdax media errors into file "data lost" errors when convenient
Translate fsdax persistent failure notifications into file data loss events when it's convenient, aka when the inode is already incore. Signed-off-by: Darrick J. Wong <djwong@kernel.org> Link: https://patch.msgid.link/176826402673.3490369.1672039530408369208.stgit@frogsfrogsfrogs Reviewed-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Christian Brauner <brauner@kernel.org>
-rw-r--r--fs/xfs/xfs_notify_failure.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/fs/xfs/xfs_notify_failure.c b/fs/xfs/xfs_notify_failure.c
index b17672889942..6d5002413c2c 100644
--- a/fs/xfs/xfs_notify_failure.c
+++ b/fs/xfs/xfs_notify_failure.c
@@ -26,6 +26,7 @@
#include <linux/mm.h>
#include <linux/dax.h>
#include <linux/fs.h>
+#include <linux/fserror.h>
struct xfs_failure_info {
xfs_agblock_t startblock;
@@ -116,6 +117,9 @@ xfs_dax_failure_fn(
invalidate_inode_pages2_range(mapping, pgoff,
pgoff + pgcnt - 1);
+ fserror_report_data_lost(VFS_I(ip), (u64)pgoff << PAGE_SHIFT,
+ (u64)pgcnt << PAGE_SHIFT, GFP_NOFS);
+
xfs_irele(ip);
return error;
}