On 01/27/2018 06:23 AM, Coly Li wrote:
> dc->writeback_rate_update_seconds can be set via sysfs and its value can
> be set to [1, ULONG_MAX].  It does not make sense to set such a large
> value, 60 seconds is long enough value considering the default 5 seconds
> works well for long time.
> 
> Because dc->writeback_rate_update is a special delayed work, it re-arms
> itself inside the delayed work routine update_writeback_rate(). When
> stopping it by cancel_delayed_work_sync(), there should be a timeout to
> wait and make sure the re-armed delayed work is stopped too. A small max
> value of dc->writeback_rate_update_seconds is also helpful to decide a
> reasonable small timeout.
> 
> This patch limits sysfs interface to set dc->writeback_rate_update_seconds
> in range of [1, 60] seconds, and replaces the hand-coded number by macros.
> 
> Signed-off-by: Coly Li <[email protected]>
> Reviewed-by: Hannes Reinecke <[email protected]>

[snip]

> ---
>  drivers/md/bcache/sysfs.c     | 3 +++
>  drivers/md/bcache/writeback.c | 2 +-
>  drivers/md/bcache/writeback.h | 3 +++
>  3 files changed, 7 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/md/bcache/sysfs.c b/drivers/md/bcache/sysfs.c
> index b4184092c727..a74a752c9e0f 100644
> --- a/drivers/md/bcache/sysfs.c
> +++ b/drivers/md/bcache/sysfs.c
> @@ -215,6 +215,9 @@ STORE(__cached_dev)
>       sysfs_strtoul_clamp(writeback_rate,
>                           dc->writeback_rate.rate, 1, INT_MAX);
>  
> +     sysfs_strtoul_clamp(writeback_rate_update_seconds,
> +                         dc->writeback_rate_update_seconds,
> +                         1, WRITEBACK_RATE_UPDATE_SECS_MAX);
>       d_strtoul_nonzero(writeback_rate_update_seconds);

Doesn't the above line need to be removed for this to work?

Mike

Reply via email to