On Wed, Nov 25, 2009 at 10:51:33PM +0800, Liuweni wrote: > Hi Matthew Wilcox , > The code means set counter's value to the max max_reserved and counter. > Then, the if condition will choose a large one, and in the function, the counter > is increased. so this code won't change the function of iunique(). > > > + if (counter <= max_reserved) > > + counter = max_reserved + 1; If 'counter' has the value 0xffffffff, and the loop increments 'counter' to zero, this check needs to be inside the loop. > > ----------- > Best Regards, > Liuweni > 2009-11-25 > > > > > > > > ???????? Matthew Wilcox > ?????????? 2009-11-25 22:15:09 > ???????? Liuweni > ?????? linux-kernel; strongzgy; xgr178; Liu Hui; viro; akpm; jack; npiggin; linux-fsdevel > ?????? Re: [PATCH 1/3]fs/inode: iunique() Optimize Performance > > On Wed, Nov 25, 2009 at 10:09:45PM +0800, Liuweni wrote: > > --- > > move the if condition out the while{}. > > While the function executing, the if > > condition won't check again and again. > > And this code won't change the function > > of iunique(). > That's not true. > > @@ -838,9 +838,10 @@ ino_t iunique(struct super_block *sb, ino_t max_reserved) > > ino_t res; > > > > spin_lock(&inode_lock); > > + > > + if (counter <= max_reserved) > > + counter = max_reserved + 1; > > do { > > - if (counter <= max_reserved) > > - counter = max_reserved + 1; > > res = counter++; > 'counter' is incremented here, so if it wraps around, we'll blunder into > the reserved space again. > > head = inode_hashtable + hash(sb, res); > > inode = find_inode_fast(sb, head, res); > > > > > > -------------- > > Best Regards, > > Liuweni > > 2009-11-25 > > > > -- > > 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 > -- > Matthew Wilcox Intel Open Source Technology Centre > "Bill, look, we understand that you're interested in selling us this > operating system, but compare it to ours. We can't possibly take such > a retrograde step." -- Matthew Wilcox Intel Open Source Technology Centre "Bill, look, we understand that you're interested in selling us this operating system, but compare it to ours. We can't possibly take such a retrograde step." -- 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