md/bitmap: always wake up md_thread in timeout_store
authorYu Kuai <yukuai3@huawei.com>
Tue, 23 May 2023 02:10:15 +0000 (10:10 +0800)
committerSong Liu <song@kernel.org>
Tue, 13 Jun 2023 22:25:13 +0000 (15:25 -0700)
md_wakeup_thread() can handle the case that pass in md_thread is NULL,
the only difference is that md_wakeup_thread() will be called when
current timeout is 'MAX_SCHEDULE_TIMEOUT', this should not matter
because timeout_store() is not hot path, and the daemon process is
woke up more than demand from other context already.

Prepare to factor out a helper to set timeout.

Signed-off-by: Yu Kuai <yukuai3@huawei.com>
Signed-off-by: Song Liu <song@kernel.org>
Link: https://lore.kernel.org/r/20230523021017.3048783-4-yukuai1@huaweicloud.com
drivers/md/md-bitmap.c

index 358a064..4b5ba81 100644 (file)
@@ -2476,11 +2476,11 @@ timeout_store(struct mddev *mddev, const char *buf, size_t len)
                 * the bitmap is all clean and we don't need to
                 * adjust the timeout right now
                 */
-               if (mddev->thread->timeout < MAX_SCHEDULE_TIMEOUT) {
+               if (mddev->thread->timeout < MAX_SCHEDULE_TIMEOUT)
                        mddev->thread->timeout = timeout;
-                       md_wakeup_thread(mddev->thread);
-               }
        }
+
+       md_wakeup_thread(mddev->thread);
        return len;
 }