|
@@ -286,11 +286,9 @@ static void init_once(void *foo)
|
|
|
*/
|
|
|
void __iget(struct inode *inode)
|
|
|
{
|
|
|
- if (atomic_read(&inode->i_count)) {
|
|
|
- atomic_inc(&inode->i_count);
|
|
|
+ if (atomic_inc_return(&inode->i_count) != 1)
|
|
|
return;
|
|
|
- }
|
|
|
- atomic_inc(&inode->i_count);
|
|
|
+
|
|
|
if (!(inode->i_state & (I_DIRTY|I_SYNC)))
|
|
|
list_move(&inode->i_list, &inode_in_use);
|
|
|
inodes_stat.nr_unused--;
|