[PATCH v2 33/53] cachefiles: Add I/O error reporting macros
David Howells
dhowells at redhat.com
Fri Oct 22 12:06:42 PDT 2021
Add a couple of macros to report I/O errors and to tell fscache that the
cache is in trouble.
Signed-off-by: David Howells <dhowells at redhat.com>
cc: linux-cachefs at redhat.com
---
fs/cachefiles/internal.h | 20 ++++++++++++++++++++
1 file changed, 20 insertions(+)
diff --git a/fs/cachefiles/internal.h b/fs/cachefiles/internal.h
index d615213a2fa1..230a1a2bf01d 100644
--- a/fs/cachefiles/internal.h
+++ b/fs/cachefiles/internal.h
@@ -153,6 +153,26 @@ static inline int cachefiles_inject_remove_error(void)
return cachefiles_error_injection_state & 2 ? -EIO : 0;
}
+/*
+ * error handling
+ */
+
+#define cachefiles_io_error(___cache, FMT, ...) \
+do { \
+ pr_err("I/O Error: " FMT"\n", ##__VA_ARGS__); \
+ fscache_io_error((___cache)->cache); \
+ set_bit(CACHEFILES_DEAD, &(___cache)->flags); \
+} while (0)
+
+#define cachefiles_io_error_obj(object, FMT, ...) \
+do { \
+ struct cachefiles_cache *___cache; \
+ \
+ ___cache = (object)->volume->cache; \
+ cachefiles_io_error(___cache, FMT " [o=%08x]", ##__VA_ARGS__, \
+ (object)->debug_id); \
+} while (0)
+
/*
* debug tracing
More information about the linux-afs
mailing list