Deallocation of a file is broken into several transactions. It should be possible to merge some of these. Also there is considerable scope for optimisation by reading things ahead in various places. Also, if it is possible to deallocate directories without having to journal all the hash table blocks and write them back to disk, then that should also result in a faster deallocation. The main problem here is the indeterminate number of rgrps in which the blocks of the inode might reside. This means that deallocation may have to be broken into separate transactions in order not to overflow the max transaction size. We also need to spend some time looking for other oprimisations in this code.
->delete_inode() has become ->evict_inode() in the upstream code
Closing on the basis that it is no longer relevant due to other updates that have been done in the mean time.