|
@@ -674,8 +674,16 @@ done2:
|
|
|
* generic_delete_inode did it, before we lowered next_index.
|
|
|
* Also, though shmem_getpage checks i_size before adding to
|
|
|
* cache, no recheck after: so fix the narrow window there too.
|
|
|
+ *
|
|
|
+ * Recalling truncate_inode_pages_range and unmap_mapping_range
|
|
|
+ * every time for punch_hole (which never got a chance to clear
|
|
|
+ * SHMEM_PAGEIN at the start of vmtruncate_range) is expensive,
|
|
|
+ * yet hardly ever necessary: try to optimize them out later.
|
|
|
*/
|
|
|
truncate_inode_pages_range(inode->i_mapping, start, end);
|
|
|
+ if (punch_hole)
|
|
|
+ unmap_mapping_range(inode->i_mapping, start,
|
|
|
+ end - start, 1);
|
|
|
}
|
|
|
|
|
|
spin_lock(&info->lock);
|