lkml.org 
[lkml]   [2009]   [Sep]   [24]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH 06/10] writeback: improve readability of the wb_writeback() continue/break logic
    On Thu, Sep 24, 2009 at 10:40:32PM +0800, Jens Axboe wrote:
    > And throw some comments in there, too.

    Nice cleanup!

    Reviewed-by: Wu Fengguang <fengguang.wu@intel.com>

    > Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
    > ---
    > fs/fs-writeback.c | 43 +++++++++++++++++++++++--------------------
    > 1 files changed, 23 insertions(+), 20 deletions(-)
    >
    > diff --git a/fs/fs-writeback.c b/fs/fs-writeback.c
    > index 916e834..15e375b 100644
    > --- a/fs/fs-writeback.c
    > +++ b/fs/fs-writeback.c
    > @@ -750,29 +750,32 @@ static long wb_writeback(struct bdi_writeback *wb,
    > wrote += MAX_WRITEBACK_PAGES - wbc.nr_to_write;
    >
    > /*
    > - * If we ran out of stuff to write, bail unless more_io got set
    > + * If we consumed everything, see if we have more
    > */
    > - if (wbc.nr_to_write > 0) {
    > - if (wbc.more_io) {
    > - if (wbc.nr_to_write < MAX_WRITEBACK_PAGES)
    > - continue;
    > - /*
    > - * Nothing written. Wait for some inode to
    > - * become available for writeback. Otherwise
    > - * we'll just busyloop.
    > - */
    > - spin_lock(&inode_lock);
    > - if (!list_empty(&wb->b_more_io)) {
    > - inode = list_entry(
    > - wb->b_more_io.prev,
    > - struct inode, i_list);
    > - inode_wait_for_writeback(inode);
    > - }
    > - spin_unlock(&inode_lock);
    > - continue;
    > - }
    > + if (wbc.nr_to_write <= 0)
    > + continue;
    > + /*
    > + * Didn't write everything and we don't have more IO, bail
    > + */
    > + if (!wbc.more_io)
    > break;
    > + /*
    > + * Did we write something? Try for more
    > + */
    > + if (wbc.nr_to_write < MAX_WRITEBACK_PAGES)
    > + continue;
    > + /*
    > + * Nothing written. Wait for some inode to
    > + * become available for writeback. Otherwise
    > + * we'll just busyloop.
    > + */
    > + spin_lock(&inode_lock);
    > + if (!list_empty(&wb->b_more_io)) {
    > + inode = list_entry(wb->b_more_io.prev,
    > + struct inode, i_list);
    > + inode_wait_for_writeback(inode);
    > }
    > + spin_unlock(&inode_lock);
    > }
    >
    > return wrote;
    > --
    > 1.6.4.1.207.g68ea


    \
     
     \ /
      Last update: 2009-09-25 02:55    [W:0.023 / U:30.760 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site