} else if (inode->i_state & I_DIRTY) {
/*
* Someone redirtied the inode while were writing back
- * the pages.
+ * the pages: nothing to do.
*/
- list_move(&inode->i_list, &sb->s_dirty);
} else if (atomic_read(&inode->i_count)) {
/*
* The inode is clean, inuse
* The inode is clean, unused
*/
list_move(&inode->i_list, &inode_unused);
- inodes_stat.nr_unused++;
}
}
wake_up_inode(inode);
list_move(&inode->i_list, &sb->s_dirty);
}
spin_unlock(&inode_lock);
- cond_resched();
iput(inode);
spin_lock(&inode_lock);
if (wbc->nr_to_write <= 0)
{
struct super_block *sb;
- might_sleep();
spin_lock(&inode_lock);
spin_lock(&sb_lock);
restart:
if (inode->i_mapping->backing_dev_info->memory_backed)
return;
- might_sleep();
spin_lock(&inode_lock);
__writeback_single_inode(inode, &wbc);
spin_unlock(&inode_lock);