clear_inode(inode);
 }
 
-static void hugetlbfs_do_delete_inode(struct inode *inode)
-{
-       struct super_operations *op = inode->i_sb->s_op;
-
-       list_del_init(&inode->i_list);
-       list_del_init(&inode->i_sb_list);
-       inode->i_state |= I_FREEING;
-       inodes_stat.nr_inodes--;
-       spin_unlock(&inode_lock);
-
-       security_inode_delete(inode);
-
-       if (op->delete_inode) {
-               void (*delete)(struct inode *) = op->delete_inode;
-               if (!is_bad_inode(inode))
-                       DQUOT_INIT(inode);
-               /* Filesystems implementing their own
-                * s_op->delete_inode are required to call
-                * truncate_inode_pages and clear_inode()
-                * internally
-                */
-               delete(inode);
-       } else {
-               truncate_inode_pages(&inode->i_data, 0);
-               clear_inode(inode);
-       }
-
-       spin_lock(&inode_lock);
-       hlist_del_init(&inode->i_hash);
-       spin_unlock(&inode_lock);
-       wake_up_inode(inode);
-       if (inode->i_state != I_CLEAR)
-               BUG();
-       destroy_inode(inode);
-}
-
 static void hugetlbfs_forget_inode(struct inode *inode)
 {
        struct super_block *super_block = inode->i_sb;
 static void hugetlbfs_drop_inode(struct inode *inode)
 {
        if (!inode->i_nlink)
-               hugetlbfs_do_delete_inode(inode);
+               generic_delete_inode(inode);
        else
                hugetlbfs_forget_inode(inode);
 }