在 2008-10-27一的 18:29 -0400,Mike Snitzer写道: > Please see: e6022603b9aa7d61d20b392e69edcdbbc1789969 > > Having a look at the LKML archives this was raised back in 2006: > http://lkml.org/lkml/2006/6/23/337 > > I'm not interested in whether unlikely() actually helps here. > > I'm still missing _why_ rsv is mostly NULL at this callsite, as Andrew > asserted here: > http://lkml.org/lkml/2006/6/23/400 > > And then Steve here: http://lkml.org/lkml/2006/6/24/76 > Where he said: > "The problem is that in these cases the pointer is NULL several thousands > of times for every time it is not NULL (if ever). The non-NULL case is > where an error occurred or something very special. So I don't see how > the if here is a problem?" > > I'm missing which error or what "something very special" is the > unlikely() reason for having rsv be NULL. > > Looking at the code; ext3_clear_inode() is _the_ place where the > i_block_alloc_info is cleaned up. In my testing the rsv is _never_ > NULL if the file was open for writing. Are we saying that reads are > much more common than writes? May be a reasonable assumption but > saying as much is very different than what Steve seemed to be eluding > to... > i_block_alloc_info as the structure to keep track of block reservation/allocation, is dynamically allocated when file does need blocks. So rsv remains NULL even if file is open for rewrite, until file is about to do block allocation. Mingming > Anyway, I'd appreciate some clarification here. > > thanks, > Mike > -- > 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 -- 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