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; ----------- 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." ?韬{.n?????%??檩??w?{.n???{饼?z鳐??骅w*jg????????G??⒏⒎?:+v????????????"??????