kernel_optimize_test/drivers/md/bcache
Coly Li 383ff2183a bcache: check CACHE_SET_IO_DISABLE bit in bch_journal()
When too many I/O errors happen on cache set and CACHE_SET_IO_DISABLE
bit is set, bch_journal() may continue to work because the journaling
bkey might be still in write set yet. The caller of bch_journal() may
believe the journal still work but the truth is in-memory journal write
set won't be written into cache device any more. This behavior may
introduce potential inconsistent metadata status.

This patch checks CACHE_SET_IO_DISABLE bit at the head of bch_journal(),
if the bit is set, bch_journal() returns NULL immediately to notice
caller to know journal does not work.

Signed-off-by: Coly Li <colyli@suse.de>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
2019-06-28 07:39:15 -06:00
..
alloc.c bcache: check CACHE_SET_IO_DISABLE in allocator code 2019-06-28 07:39:15 -06:00
bcache.h bcache: add return value check to bch_cached_dev_run() 2019-06-28 07:39:14 -06:00
bset.c bcache: remove unncessary code in bch_btree_keys_init() 2019-06-28 07:39:15 -06:00
bset.h bcache: fix stack corruption by PRECEDING_KEY() 2019-06-13 03:09:14 -06:00
btree.c bcache: remove unncessary code in bch_btree_keys_init() 2019-06-28 07:39:15 -06:00
btree.h bcache: introduce force_wake_up_gc() 2018-12-13 08:15:54 -07:00
closure.c bcache: add missing SPDX header 2018-08-11 15:46:42 -06:00
closure.h bcache: fix typo in code comments of closure_return_with_destructor() 2018-10-08 08:19:43 -06:00
debug.c bcache: do not check if debug dentry is ERR or NULL explicitly on remove 2018-12-13 08:15:54 -07:00
debug.h bcache: add identifier names to arguments of function definitions 2018-08-11 15:46:41 -06:00
extents.c bcache: treat stale && dirty keys as bad keys 2019-02-09 07:18:31 -07:00
extents.h bcache: add identifier names to arguments of function definitions 2018-08-11 15:46:41 -06:00
io.c bcache: ignore read-ahead request failure on backing device 2019-06-28 07:39:14 -06:00
journal.c bcache: check CACHE_SET_IO_DISABLE bit in bch_journal() 2019-06-28 07:39:15 -06:00
journal.h bcache: add identifier names to arguments of function definitions 2018-08-11 15:46:41 -06:00
Kconfig treewide: Add SPDX license identifier - Makefile/Kconfig 2019-05-21 10:50:46 +02:00
Makefile License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
movinggc.c bcache: style fix to add a blank line after declarations 2018-08-11 15:46:41 -06:00
request.c bcache: Clean up bch_get_congested() 2019-04-24 10:56:27 -06:00
request.h bcache: Clean up bch_get_congested() 2019-04-24 10:56:27 -06:00
stats.c bcache: not use hard coded memset size in bch_cache_accounting_clear() 2019-02-09 07:18:31 -07:00
stats.h bcache: add identifier names to arguments of function definitions 2018-08-11 15:46:41 -06:00
super.c bcache: add return value check to bch_cached_dev_run() 2019-06-28 07:39:14 -06:00
sysfs.c bcache: add return value check to bch_cached_dev_run() 2019-06-28 07:39:14 -06:00
sysfs.h bcache: add sysfs_strtoul_bool() for setting bit-field variables 2019-02-09 07:18:32 -07:00
trace.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
util.c bcache: avoid to use bio_for_each_segment_all() in bch_bio_alloc_pages() 2019-02-15 08:40:11 -07:00
util.h bcache: Clean up bch_get_congested() 2019-04-24 10:56:27 -06:00
writeback.c bcache: don't set max writeback rate if gc is running 2019-06-28 07:39:13 -06:00
writeback.h bcache: never writeback a discard operation 2019-02-09 07:18:31 -07:00