Re: [PATCH 7/7] Fix the case of jiffies wrapping in mm/pdflush.c

From: Andrew Morton
Date: Mon Jun 30 2008 - 23:34:27 EST


On Tue, 01 Jul 2008 11:57:04 +0900 OGAWA Hirofumi <hirofumi@xxxxxxxxxxxxxxxxxx> wrote:

>
>
> Signed-off-by: OGAWA Hirofumi <hirofumi@xxxxxxxxxxxxxxxxxx>
> ---
>
> mm/pdflush.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff -puN mm/pdflush.c~pdfluh-jiffies-check-fix mm/pdflush.c
> --- linux-2.6/mm/pdflush.c~pdfluh-jiffies-check-fix 2008-07-01 10:19:07.000000000 +0900
> +++ linux-2.6-hirofumi/mm/pdflush.c 2008-07-01 10:19:07.000000000 +0900
> @@ -130,7 +130,7 @@ static int __pdflush(struct pdflush_work
> * Thread creation: For how long have there been zero
> * available threads?
> */
> - if (jiffies - last_empty_jifs > 1 * HZ) {
> + if (time_after(jiffies, last_empty_jifs + 1 * HZ)) {
> /* unlocked list_empty() test is OK here */
> if (list_empty(&pdflush_list)) {
> /* unlocked test is OK here */
> @@ -151,7 +151,7 @@ static int __pdflush(struct pdflush_work
> if (nr_pdflush_threads <= MIN_PDFLUSH_THREADS)
> continue;
> pdf = list_entry(pdflush_list.prev, struct pdflush_work, list);
> - if (jiffies - pdf->when_i_went_to_sleep > 1 * HZ) {
> + if (time_after(jiffies, pdf->when_i_went_to_sleep + 1 * HZ)) {
> /* Limit exit rate */
> pdf->when_i_went_to_sleep = jiffies;
> break; /* exeunt */

I don't think this actually "fixes" anything, does it? The old code
should be correct at runtime.

I renamed the patch to "pdflush: use time_after() instead of open-coding it".

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/