From 3944acda287221395c5e9b12a892988c392c455d Mon Sep 17 00:00:00 2001 From: Krzysztof Mazur Date: Tue, 25 Jan 2011 23:15:50 +0100 Subject: [PATCH 17/84] LSBD: increase clean window on mirrored devices On mirrored devices two physical blocks have the same content. --- drivers/block/lsbd.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/drivers/block/lsbd.c b/drivers/block/lsbd.c index 907f9d4..e72618f 100644 --- a/drivers/block/lsbd.c +++ b/drivers/block/lsbd.c @@ -1783,6 +1783,7 @@ static int lsbd_thread(void *data) int want_write; int want_clean; unsigned int i; + unsigned int clean_window; lock_kernel(); daemonize(); @@ -1816,7 +1817,9 @@ static int lsbd_thread(void *data) if (p->wqueue_len || p->blocks_to_write) want_write = 1; spin_unlock_irq(&p->wqueue_lock); - want_clean = (block_diff(p, p->clean_block, p->cur_block) < 16); + clean_window = p->mirrored ? 32 : 16; + want_clean = (block_diff(p, p->clean_block, p->cur_block) + < clean_window); if (!(want_write || want_clean)) schedule(); current->state = TASK_RUNNING; -- 1.8.4.652.g0d6e0ce