lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Message-ID: <20080816104304.GF6423@skywalker> Date: Sat, 16 Aug 2008 16:13:04 +0530 From: "Aneesh Kumar K.V" <aneesh.kumar@...ux.vnet.ibm.com> To: Theodore Tso <tytso@....edu> Cc: cmm@...ibm.com, sandeen@...hat.com, linux-ext4@...r.kernel.org Subject: Re: [PATCH] ext4: Fix small file fragmentation On Fri, Aug 15, 2008 at 11:22:43PM +0530, Aneesh Kumar K.V wrote: > commit 6ad9d25595aea8efa0d45c0a2dd28b4a415e34e6 > Author: Aneesh Kumar K.V <aneesh.kumar@...ux.vnet.ibm.com> > 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@...r.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists