fscache: Add a function for a cache backend to note an I/O error
Add a function to the backend API to note an I/O error in a cache. Signed-off-by: David Howells <dhowells@redhat.com> Reviewed-by: Jeff Layton <jlayton@kernel.org> cc: linux-cachefs@redhat.com Link: https://lore.kernel.org/r/163819598741.215744.891281275151382095.stgit@warthog.procyon.org.uk/ # v1 Link: https://lore.kernel.org/r/163906901316.143852.15225412215771586528.stgit@warthog.procyon.org.uk/ # v2 Link: https://lore.kernel.org/r/163967100721.1823006.16435671567428949398.stgit@warthog.procyon.org.uk/ # v3 Link: https://lore.kernel.org/r/164021508840.640689.11902836226570620424.stgit@warthog.procyon.org.uk/ # v4
This commit is contained in:
parent
bfa22da3ed
commit
29f18e79fe
@ -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
|
||||
|
@ -73,6 +73,8 @@ extern int fscache_add_cache(struct fscache_cache *cache,
|
||||
extern void fscache_withdraw_cache(struct fscache_cache *cache);
|
||||
extern void fscache_withdraw_volume(struct fscache_volume *volume);
|
||||
|
||||
extern void fscache_io_error(struct fscache_cache *cache);
|
||||
|
||||
extern void fscache_end_volume_access(struct fscache_volume *volume,
|
||||
struct fscache_cookie *cookie,
|
||||
enum fscache_access_trace why);
|
||||
|
Loading…
Reference in New Issue
Block a user