On Thu, May 12, 2011 at 09:57:19PM +0800, Wu Fengguang wrote: > When wbc.more_io was first introduced, it indicates whether there are > at least one superblock whose s_more_io contains more IO work. Now with > the per-bdi writeback, it can be replaced with a simple b_more_io test. > > Acked-by: Jan Kara <jack@xxxxxxx> > Acked-by: Mel Gorman <mel@xxxxxxxxx> > CC: Minchan Kim <minchan.kim@xxxxxxxxx> > Signed-off-by: Wu Fengguang <fengguang.wu@xxxxxxxxx> > --- > fs/fs-writeback.c | 9 ++------- > include/linux/writeback.h | 1 - > include/trace/events/ext4.h | 6 ++---- > include/trace/events/writeback.h | 5 +---- > 4 files changed, 5 insertions(+), 16 deletions(-) > > --- linux-next.orig/fs/fs-writeback.c 2011-05-05 23:30:30.000000000 +0800 > +++ linux-next/fs/fs-writeback.c 2011-05-05 23:30:33.000000000 +0800 > @@ -560,12 +560,8 @@ static int writeback_sb_inodes(struct su > iput(inode); > cond_resched(); > spin_lock(&wb->list_lock); > - if (wbc->nr_to_write <= 0) { > - wbc->more_io = 1; > + if (wbc->nr_to_write <= 0) > return 1; > - } > - if (!list_empty(&wb->b_more_io)) > - wbc->more_io = 1; > } > /* b_io is empty */ > return 1; > @@ -707,7 +703,6 @@ static long wb_writeback(struct bdi_writ > wbc.older_than_this = &oldest_jif; > } > > - wbc.more_io = 0; > wbc.nr_to_write = write_chunk; > wbc.pages_skipped = 0; > wbc.inodes_cleaned = 0; > @@ -755,7 +750,7 @@ retry: > /* > * No more inodes for IO, bail > */ > - if (!wbc.more_io) > + if (list_empty(&wb->b_more_io)) > break; We're not holding the wb->list_lock here, so we need to be careful here. I think this is safe given that there shuold only be one flusher thread operating on the list, but when we expand to multiple flusher threads per-bdi, this coul dbe a nasty landmine. A comment is probably in order explaining why this is safe to check unlocked right now... Cheers, Dave. -- Dave Chinner david@xxxxxxxxxxxxx -- To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html