Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

dm cache: set needs_check flag after aborting metadata

Otherwise the commit that will be aborted will be associated with the
metadata objects that will be torn down. Must write needs_check flag
to metadata with a reset block manager.

Found through code-inspection (and compared against dm-thin.c).

Cc: stable@vger.kernel.org
Fixes: 028ae9f76f29 ("dm cache: add fail io mode and needs_check flag")
Signed-off-by: Mike Snitzer <snitzer@kernel.org>

+5 -5
+5 -5
drivers/md/dm-cache-target.c
··· 907 907 if (get_cache_mode(cache) >= CM_READ_ONLY) 908 908 return; 909 909 910 - if (dm_cache_metadata_set_needs_check(cache->cmd)) { 911 - DMERR("%s: failed to set 'needs_check' flag in metadata", dev_name); 912 - set_cache_mode(cache, CM_FAIL); 913 - } 914 - 915 910 DMERR_LIMIT("%s: aborting current metadata transaction", dev_name); 916 911 if (dm_cache_metadata_abort(cache->cmd)) { 917 912 DMERR("%s: failed to abort metadata transaction", dev_name); 913 + set_cache_mode(cache, CM_FAIL); 914 + } 915 + 916 + if (dm_cache_metadata_set_needs_check(cache->cmd)) { 917 + DMERR("%s: failed to set 'needs_check' flag in metadata", dev_name); 918 918 set_cache_mode(cache, CM_FAIL); 919 919 } 920 920 }