On Fri, Aug 15, 2008 at 11:22:43PM +0530, Aneesh Kumar K.V wrote: > commit 6ad9d25595aea8efa0d45c0a2dd28b4a415e34e6 > Author: Aneesh Kumar K.V <aneesh.kumar@xxxxxxxxxxxxxxxxxx> > Date: Fri Aug 15 23:19:15 2008 +0530 > > move the dirty inodes to the end of the list > > diff --git a/fs/ext4/mballoc.c b/fs/ext4/mballoc.c > index 1afcb11..650b021 100644 > --- a/fs/ext4/mballoc.c > +++ b/fs/ext4/mballoc.c > @@ -4258,7 +4258,8 @@ ext4_mb_discard_lg_preallocations(struct super_block *sb, > > static void ext4_mb_add_n_trim(struct ext4_allocation_context *ac) > { > - int order, added = 0, lg_prealloc_count = 1; > + int order, lg_prealloc_count = 1; > + bool added = 0; > struct super_block *sb = ac->ac_sb; > struct ext4_locality_group *lg = ac->ac_lg; > struct ext4_prealloc_space *tmp_pa, *pa = ac->ac_pa; > diff --git a/fs/fs-writeback.c b/fs/fs-writeback.c > index 25adfc3..95eee62 100644 > --- a/fs/fs-writeback.c > +++ b/fs/fs-writeback.c > @@ -163,7 +163,7 @@ void __mark_inode_dirty(struct inode *inode, int flags) > */ > if (!was_dirty) { > inode->dirtied_when = jiffies; > - list_move(&inode->i_list, &sb->s_dirty); > + list_move_tail(&inode->i_list, &sb->s_dirty); > } > } > out: > @@ -208,7 +208,7 @@ static void redirty_tail(struct inode *inode) > */ > static void requeue_io(struct inode *inode) > { > - list_move(&inode->i_list, &inode->i_sb->s_more_io); > + list_move_tail(&inode->i_list, &inode->i_sb->s_more_io); > } > > static void inode_sync_complete(struct inode *inode) The patch is not really useful and is also wrong. Verifying the results again I found that patch didn't make any difference. We actually read from the s_io list from the tail not from the head (generic_sync_sb_inodes) That means inodes are already added in the order they are dirtied. -aneesh -- To unsubscribe from this list: send the line "unsubscribe linux-ext4" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html