lkml.org 
[lkml]   [2009]   [May]   [27]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Date
    Subject[PATCH 18/19] write-back: introduce a helper function
    From: Artem Bityutskiy <Artem.Bityutskiy@nokia.com>
    Subject: [PATCH] write-back: introduce a helper function

    This patch is just a clean up and a preparation for the
    following periodic write-back optimization patches. It
    introduces a helper 'setup_wb_timer()' function which
    sets up the periodic write-back timer to the specified
    value, or to the default value. The code just looks
    neater with this helper.

    Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@nokia.com>
    Cc: Christoph Hellwig <hch@infradead.org>
    ---
    mm/page-writeback.c | 25 +++++++++++++++++++------
    1 files changed, 19 insertions(+), 6 deletions(-)

    diff --git a/mm/page-writeback.c b/mm/page-writeback.c
    index 30351f0..8a213a9 100644
    --- a/mm/page-writeback.c
    +++ b/mm/page-writeback.c
    @@ -738,6 +738,21 @@ static DEFINE_TIMER(wb_timer, wb_timer_fn, 0, 0);
    static DEFINE_TIMER(laptop_mode_wb_timer, laptop_timer_fn, 0, 0);

    /*
    + * Setup the periodic write-back timer to expires at @expires jiffies. If
    + * @expires is zero, the timer is set up to the default interval.
    + */
    +static void setup_wb_timer(unsigned long expires)
    +{
    + if (!expires) {
    + /* Setup to the default wake-up period value */
    + expires = jiffies;
    + expires += msecs_to_jiffies(dirty_writeback_interval * 10);
    + }
    +
    + mod_timer(&wb_timer, expires);
    +}
    +
    +/*
    * Periodic writeback of "old" data.
    *
    * Define "old": the first time one of an inode's pages is dirtied, we mark the
    @@ -792,7 +807,7 @@ static void wb_kupdate(unsigned long arg)
    if (time_before(next_jif, jiffies + HZ))
    next_jif = jiffies + HZ;
    if (dirty_writeback_interval)
    - mod_timer(&wb_timer, next_jif);
    + setup_wb_timer(next_jif);
    }

    /*
    @@ -803,8 +818,7 @@ int dirty_writeback_centisecs_handler(ctl_table *table, int write,
    {
    proc_dointvec(table, write, file, buffer, length, ppos);
    if (dirty_writeback_interval)
    - mod_timer(&wb_timer, jiffies +
    - msecs_to_jiffies(dirty_writeback_interval * 10));
    + setup_wb_timer(0);
    else
    del_timer(&wb_timer);
    return 0;
    @@ -813,7 +827,7 @@ int dirty_writeback_centisecs_handler(ctl_table *table, int write,
    static void wb_timer_fn(unsigned long unused)
    {
    if (pdflush_operation(wb_kupdate, 0) < 0)
    - mod_timer(&wb_timer, jiffies + HZ); /* delay 1 second */
    + setup_wb_timer( jiffies + HZ); /* delay 1 second */
    }

    static void laptop_flush(unsigned long unused)
    @@ -906,8 +920,7 @@ void __init page_writeback_init(void)
    {
    int shift;

    - mod_timer(&wb_timer,
    - jiffies + msecs_to_jiffies(dirty_writeback_interval * 10));
    + setup_wb_timer(0);
    writeback_set_ratelimit();
    register_cpu_notifier(&ratelimit_nb);

    --
    1.6.0.6


    \
     
     \ /
      Last update: 2009-05-27 13:25    [W:0.028 / U:0.228 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site