summaryrefslogtreecommitdiff
path: root/fs
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 /fs
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>
Diffstat (limited to 'fs')
-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;
}