dm cache: add fail io mode and needs_check flag
authorJoe Thornber <ejt@redhat.com>
Wed, 22 Apr 2015 20:42:35 +0000 (16:42 -0400)
committerMike Snitzer <snitzer@redhat.com>
Thu, 11 Jun 2015 21:13:00 +0000 (17:13 -0400)
commit028ae9f76f2935e8cf9974bff9a4587e3a995ff3
tree1bd3984690e112d03cf1e56d43b32c000e420ab4
parent88bf5184fa5861e766e39fd34fc6d21557ac7be8
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>
Documentation/device-mapper/cache.txt
drivers/md/dm-cache-metadata.c
drivers/md/dm-cache-metadata.h
drivers/md/dm-cache-policy-internal.h
drivers/md/dm-cache-policy-mq.c
drivers/md/dm-cache-policy.h
drivers/md/dm-cache-target.c