fscache: Add a function for a cache backend to note an I/O error
[linux-2.6-microblaze.git] / fs / fscache / cache.c
index bbd102b..25eac61 100644 (file)
@@ -321,6 +321,26 @@ void fscache_end_cache_access(struct fscache_cache *cache, enum fscache_access_t
                wake_up_var(&cache->n_accesses);
 }
 
+/**
+ * fscache_io_error - Note a cache I/O error
+ * @cache: The record describing the cache
+ *
+ * Note that an I/O error occurred in a cache and that it should no longer be
+ * used for anything.  This also reports the error into the kernel log.
+ *
+ * See Documentation/filesystems/caching/backend-api.rst for a complete
+ * description.
+ */
+void fscache_io_error(struct fscache_cache *cache)
+{
+       if (fscache_set_cache_state_maybe(cache,
+                                         FSCACHE_CACHE_IS_ACTIVE,
+                                         FSCACHE_CACHE_GOT_IOERROR))
+               pr_err("Cache '%s' stopped due to I/O error\n",
+                      cache->name);
+}
+EXPORT_SYMBOL(fscache_io_error);
+
 /**
  * fscache_withdraw_cache - Withdraw a cache from the active service
  * @cache: The cache cookie