Re: [PATCH 1/1] Add check for dirty_writeback_interval in bdi_wakeup_thread_delayed

Dave Chinner
2011-04-18T00:02:13Z

On Sun, Apr 17, 2011 at 09:53:08PM +0530, Raghavendra D Prabhu wrote:
> In the function bdi_wakeup_thread_delayed, no checks are performed on
> dirty_writeback_interval unlike other places and timeout is being set to
> zero as result, thus defeating the purpose. So, I have changed it to be
> passed default value of interval which is 500 centiseconds, when it is
> set to zero.
> I have also verified this and tested it.
>
> Signed-off-by: Raghavendra D Prabhu <rprabhu@wnohang.net>
> ---
> mm/backing-dev.c | 5 ++++-
> 1 files changed, 4 insertions(+), 1 deletions(-)
>
> diff --git a/mm/backing-dev.c b/mm/backing-dev.c
> index befc875..d06533c 100644
> --- a/mm/backing-dev.c
> +++ b/mm/backing-dev.c
> @@ -336,7 +336,10 @@ void bdi_wakeup_thread_delayed(struct backing_dev_info *bdi)
> {
> unsigned long timeout;
> - timeout = msecs_to_jiffies(dirty_writeback_interval * 10);
> + if (dirty_writeback_interval)
> + timeout = msecs_to_jiffies(dirty_writeback_interval * 10);
> + else
> + timeout = msecs_to_jiffies(5000);
> mod_timer(&bdi->wb.wakeup_timer, jiffies + timeout);
> }

Isn't the problem that the sysctl handler does not have a min/max
valid value set? I.e. to prevent invalid values from being set in
the first place?

Cheers,

Dave.
--
Dave Chinner
david@fromorbit.com