summaryrefslogtreecommitdiffstats
path: root/drivers/md/dm-cache-policy.h
diff options
context:
space:
mode:
authorJoe Thornber <ejt@redhat.com>2015-04-22 16:42:35 -0400
committerMike Snitzer <snitzer@redhat.com>2015-06-11 17:13:00 -0400
commit028ae9f76f2935e8cf9974bff9a4587e3a995ff3 (patch)
tree1bd3984690e112d03cf1e56d43b32c000e420ab4 /drivers/md/dm-cache-policy.h
parent88bf5184fa5861e766e39fd34fc6d21557ac7be8 (diff)
downloadlinux-stable-028ae9f76f2935e8cf9974bff9a4587e3a995ff3.tar.gz
linux-stable-028ae9f76f2935e8cf9974bff9a4587e3a995ff3.tar.bz2
linux-stable-028ae9f76f2935e8cf9974bff9a4587e3a995ff3.zip
dm cache: add fail io mode and needs_check flag
If a cache metadata operation fails (e.g. transaction commit) the cache's metadata device will abort the current transaction, set a new needs_check flag, and the cache will transition to "read-only" mode. If aborting the transaction or setting the needs_check flag fails the cache will transition to "fail-io" mode. Once needs_check is set the cache device will not be allowed to activate. Activation requires write access to metadata. Future work is needed to add proper support for running the cache in read-only mode. Once in fail-io mode the cache will report a status of "Fail". Also, add commit() wrapper that will disallow commits if in read_only or fail mode. Signed-off-by: Joe Thornber <ejt@redhat.com> Signed-off-by: Mike Snitzer <snitzer@redhat.com>
Diffstat (limited to 'drivers/md/dm-cache-policy.h')
-rw-r--r--drivers/md/dm-cache-policy.h4
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/md/dm-cache-policy.h b/drivers/md/dm-cache-policy.h
index 6106ca3aa350..74709129d856 100644
--- a/drivers/md/dm-cache-policy.h
+++ b/drivers/md/dm-cache-policy.h
@@ -208,8 +208,8 @@ struct dm_cache_policy {
/*
* Configuration.
*/
- int (*emit_config_values)(struct dm_cache_policy *p,
- char *result, unsigned maxlen);
+ int (*emit_config_values)(struct dm_cache_policy *p, char *result,
+ unsigned maxlen, ssize_t *sz_ptr);
int (*set_config_value)(struct dm_cache_policy *p,
const char *key, const char *value);