]> git.proxmox.com Git - mirror_ubuntu-artful-kernel.git/commit - drivers/md/raid5-cache.c
md/r5cache: disable write back for degraded array
authorSong Liu <songliubraving@fb.com>
Tue, 24 Jan 2017 18:45:30 +0000 (10:45 -0800)
committerShaohua Li <shli@fb.com>
Tue, 24 Jan 2017 19:26:06 +0000 (11:26 -0800)
commit2e38a37f23c98d7fad87ff022670060b8a0e2bf5
tree0cc010718f63769debe1e45f7ff20bffc6db0b88
parent07e83364845e1e1c7e189a01206a9d7d33831568
md/r5cache: disable write back for degraded array

write-back cache in degraded mode introduces corner cases to the array.
Although we try to cover all these corner cases, it is safer to just
disable write-back cache when the array is in degraded mode.

In this patch, we disable writeback cache for degraded mode:
1. On device failure, if the array enters degraded mode, raid5_error()
   will submit async job r5c_disable_writeback_async to disable
   writeback;
2. In r5c_journal_mode_store(), it is invalid to enable writeback in
   degraded mode;
3. In r5c_try_caching_write(), stripes with s->failed>0 will be handled
   in write-through mode.

Signed-off-by: Song Liu <songliubraving@fb.com>
Signed-off-by: Shaohua Li <shli@fb.com>
drivers/md/raid5-cache.c
drivers/md/raid5.c
drivers/md/raid5.h