Commit b32714ba29358a688ef337d5297bf4bdc9f596dc

Authored by Arjan van de Ven
1 parent 7c51d57e9d

partial revert of asynchronous inode delete

let the core of this one bake in -next as well, but leave
some of the infrastructure in place.

Signed-off-by: Arjan van de Ven <arjan@linux.intel.com>

Showing 1 changed file with 7 additions and 12 deletions Side-by-side Diff

... ... @@ -1139,11 +1139,16 @@
1139 1139 * I_FREEING is set so that no-one will take a new reference to the inode while
1140 1140 * it is being deleted.
1141 1141 */
1142   -static void generic_delete_inode_async(void *data, async_cookie_t cookie)
  1142 +void generic_delete_inode(struct inode *inode)
1143 1143 {
1144   - struct inode *inode = data;
1145 1144 const struct super_operations *op = inode->i_sb->s_op;
1146 1145  
  1146 + list_del_init(&inode->i_list);
  1147 + list_del_init(&inode->i_sb_list);
  1148 + inode->i_state |= I_FREEING;
  1149 + inodes_stat.nr_inodes--;
  1150 + spin_unlock(&inode_lock);
  1151 +
1147 1152 security_inode_delete(inode);
1148 1153  
1149 1154 if (op->delete_inode) {
... ... @@ -1165,16 +1170,6 @@
1165 1170 wake_up_inode(inode);
1166 1171 BUG_ON(inode->i_state != I_CLEAR);
1167 1172 destroy_inode(inode);
1168   -}
1169   -
1170   -void generic_delete_inode(struct inode *inode)
1171   -{
1172   - list_del_init(&inode->i_list);
1173   - list_del_init(&inode->i_sb_list);
1174   - inode->i_state |= I_FREEING;
1175   - inodes_stat.nr_inodes--;
1176   - spin_unlock(&inode_lock);
1177   - async_schedule_special(generic_delete_inode_async, inode, &inode->i_sb->s_async_list);
1178 1173 }
1179 1174  
1180 1175 EXPORT_SYMBOL(generic_delete_inode);