On Tue, Jul 22, 2008 at 07:18:02PM -0600, Andreas Dilger wrote: > On Jul 22, 2008 17:51 -0700, Mingming Cao wrote: > > + * Calulate the total number of credits to reserve to fit > > + * the modification of @num pages into a single transaction > > + */ > > +int ext4_writepages_trans_blocks(struct inode *inode, int num) > > +{ > > + int bpp = ext4_journal_blocks_per_page(inode); > > + int nrblocks = num * bpp; > > + > > + if (!EXT4_I(inode)->i_flags & EXT4_EXTENTS_FL) > > + return ext4_writepages_trans_blocks_old(inode, nrblocks); > > This should be "if (!(EXT4_I(inode)->i_flags & EXT_EXTENTS_FL))", and > we should probably make it "unlikely()" since we expect most new files > in an ext4 filesystem are extent mapped. The cost of unlikely() can be pretty bad; the rule of thumb I've heard is that unless it's less than 1% vs. 99%, you should probably avoid using likely() and unlikely(). Given that there will be a fair number of people who will be doing upgrades of existing ext3 filesystems, I don't think using unlikely() would be a good choice here. - Ted -- 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