Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

drm/i915: use shmem_truncate_range

The interface to ->truncate_range is changing very slightly: once "tmpfs:
take control of its truncate_range" has been applied, this can be applied.
For now there is only a slight inefficiency while this remains unapplied,
but it will soon become essential for managing shmem's use of swap.

Change i915_gem_object_truncate() to use shmem_truncate_range() directly:
which should also spare i915 later change if we switch from
inode_operations->truncate_range to file_operations->fallocate.

Signed-off-by: Hugh Dickins <hughd@google.com>
Cc: Christoph Hellwig <hch@infradead.org>
Cc: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Keith Packard <keithp@keithp.com>
Cc: Dave Airlie <airlied@redhat.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

authored by

Hugh Dickins and committed by
Linus Torvalds
e2377fe0 5949eac4

+2 -5
+2 -5
drivers/gpu/drm/i915/i915_gem.c
··· 1696 1696 /* Our goal here is to return as much of the memory as 1697 1697 * is possible back to the system as we are called from OOM. 1698 1698 * To do this we must instruct the shmfs to drop all of its 1699 - * backing pages, *now*. Here we mirror the actions taken 1700 - * when by shmem_delete_inode() to release the backing store. 1699 + * backing pages, *now*. 1701 1700 */ 1702 1701 inode = obj->base.filp->f_path.dentry->d_inode; 1703 - truncate_inode_pages(inode->i_mapping, 0); 1704 - if (inode->i_op->truncate_range) 1705 - inode->i_op->truncate_range(inode, 0, (loff_t)-1); 1702 + shmem_truncate_range(inode, 0, (loff_t)-1); 1706 1703 1707 1704 obj->madv = __I915_MADV_PURGED; 1708 1705 }