提交 1b04be96 编写于 作者: N NeilBrown

md: change daemon_sleep to be in 'jiffies' rather than 'seconds'.

This removes a lot of multiplications by HZ.
Signed-off-by: NNeilBrown <neilb@suse.de>
上级 42a04b50
...@@ -565,7 +565,7 @@ static int bitmap_read_sb(struct bitmap *bitmap) ...@@ -565,7 +565,7 @@ static int bitmap_read_sb(struct bitmap *bitmap)
sb = (bitmap_super_t *)kmap_atomic(bitmap->sb_page, KM_USER0); sb = (bitmap_super_t *)kmap_atomic(bitmap->sb_page, KM_USER0);
chunksize = le32_to_cpu(sb->chunksize); chunksize = le32_to_cpu(sb->chunksize);
daemon_sleep = le32_to_cpu(sb->daemon_sleep); daemon_sleep = le32_to_cpu(sb->daemon_sleep) * HZ;
write_behind = le32_to_cpu(sb->write_behind); write_behind = le32_to_cpu(sb->write_behind);
/* verify that the bitmap-specific fields are valid */ /* verify that the bitmap-specific fields are valid */
...@@ -578,7 +578,7 @@ static int bitmap_read_sb(struct bitmap *bitmap) ...@@ -578,7 +578,7 @@ static int bitmap_read_sb(struct bitmap *bitmap)
reason = "bitmap chunksize too small"; reason = "bitmap chunksize too small";
else if ((1 << ffz(~chunksize)) != chunksize) else if ((1 << ffz(~chunksize)) != chunksize)
reason = "bitmap chunksize not a power of 2"; reason = "bitmap chunksize not a power of 2";
else if (daemon_sleep < 1 || daemon_sleep > MAX_SCHEDULE_TIMEOUT / HZ) else if (daemon_sleep < 1 || daemon_sleep > MAX_SCHEDULE_TIMEOUT)
reason = "daemon sleep period out of range"; reason = "daemon sleep period out of range";
else if (write_behind > COUNTER_MAX) else if (write_behind > COUNTER_MAX)
reason = "write-behind limit out of range (0 - 16383)"; reason = "write-behind limit out of range (0 - 16383)";
...@@ -1100,7 +1100,7 @@ void bitmap_daemon_work(mddev_t *mddev) ...@@ -1100,7 +1100,7 @@ void bitmap_daemon_work(mddev_t *mddev)
return; return;
} }
if (time_before(jiffies, bitmap->daemon_lastrun if (time_before(jiffies, bitmap->daemon_lastrun
+ bitmap->mddev->bitmap_info.daemon_sleep*HZ)) + bitmap->mddev->bitmap_info.daemon_sleep))
goto done; goto done;
bitmap->daemon_lastrun = jiffies; bitmap->daemon_lastrun = jiffies;
...@@ -1215,7 +1215,7 @@ void bitmap_daemon_work(mddev_t *mddev) ...@@ -1215,7 +1215,7 @@ void bitmap_daemon_work(mddev_t *mddev)
done: done:
if (bitmap->allclean == 0) if (bitmap->allclean == 0)
bitmap->mddev->thread->timeout = bitmap->mddev->thread->timeout =
bitmap->mddev->bitmap_info.daemon_sleep * HZ; bitmap->mddev->bitmap_info.daemon_sleep;
mutex_unlock(&mddev->bitmap_info.mutex); mutex_unlock(&mddev->bitmap_info.mutex);
} }
...@@ -1484,7 +1484,7 @@ void bitmap_cond_end_sync(struct bitmap *bitmap, sector_t sector) ...@@ -1484,7 +1484,7 @@ void bitmap_cond_end_sync(struct bitmap *bitmap, sector_t sector)
return; return;
} }
if (time_before(jiffies, (bitmap->last_end_sync if (time_before(jiffies, (bitmap->last_end_sync
+ bitmap->mddev->bitmap_info.daemon_sleep * HZ))) + bitmap->mddev->bitmap_info.daemon_sleep)))
return; return;
wait_event(bitmap->mddev->recovery_wait, wait_event(bitmap->mddev->recovery_wait,
atomic_read(&bitmap->mddev->recovery_active) == 0); atomic_read(&bitmap->mddev->recovery_active) == 0);
...@@ -1553,7 +1553,7 @@ void bitmap_flush(mddev_t *mddev) ...@@ -1553,7 +1553,7 @@ void bitmap_flush(mddev_t *mddev)
/* run the daemon_work three time to ensure everything is flushed /* run the daemon_work three time to ensure everything is flushed
* that can be * that can be
*/ */
sleep = mddev->bitmap_info.daemon_sleep * HZ * 2; sleep = mddev->bitmap_info.daemon_sleep * 2;
bitmap->daemon_lastrun -= sleep; bitmap->daemon_lastrun -= sleep;
bitmap_daemon_work(mddev); bitmap_daemon_work(mddev);
bitmap->daemon_lastrun -= sleep; bitmap->daemon_lastrun -= sleep;
...@@ -1694,7 +1694,7 @@ int bitmap_create(mddev_t *mddev) ...@@ -1694,7 +1694,7 @@ int bitmap_create(mddev_t *mddev)
mddev->bitmap = bitmap; mddev->bitmap = bitmap;
mddev->thread->timeout = mddev->bitmap_info.daemon_sleep * HZ; mddev->thread->timeout = mddev->bitmap_info.daemon_sleep;
bitmap_update_sb(bitmap); bitmap_update_sb(bitmap);
......
...@@ -2277,7 +2277,7 @@ static void raid10_quiesce(mddev_t *mddev, int state) ...@@ -2277,7 +2277,7 @@ static void raid10_quiesce(mddev_t *mddev, int state)
} }
if (mddev->thread) { if (mddev->thread) {
if (mddev->bitmap) if (mddev->bitmap)
mddev->thread->timeout = mddev->bitmap_info.daemon_sleep * HZ; mddev->thread->timeout = mddev->bitmap_info.daemon_sleep;
else else
mddev->thread->timeout = MAX_SCHEDULE_TIMEOUT; mddev->thread->timeout = MAX_SCHEDULE_TIMEOUT;
md_wakeup_thread(mddev->thread); md_wakeup_thread(mddev->thread);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册