[PATCH 0/12] tmpfs: convert from old swap vector to radix tree

From: Hugh Dickins
Date: Tue Jun 14 2011 - 06:41:21 EST


Here's my third patchset for mmotm, completing the series.
Based on 3.0-rc3 plus the 14 in June 5th "mm: tmpfs and trunc changes"
plus the 7 in June 9th "tmpfs: simplify by splice instead of readpage",
which were in preparation for it.

I'm not sure who would really be interested in it: I'm Cc'ing this
header mail as notification to a number of people who might care;
but reluctant to spam you all with the 14+7+12 patches themselves,
I hope you can pick them up from the list if you want (or ask me).

What's it about? Extending tmpfs to MAX_LFS_FILESIZE by abandoning
its peculiar swap vector, instead keeping a file's swap entries in
the same radix tree as its struct page pointers: thus saving memory,
and simplifying its code and locking.

1/12 radix_tree: exceptional entries and indices
2/12 mm: let swap use exceptional entries
3/12 tmpfs: demolish old swap vector support
4/12 tmpfs: miscellaneous trivial cleanups
5/12 tmpfs: copy truncate_inode_pages_range
6/12 tmpfs: convert shmem_truncate_range to radix-swap
7/12 tmpfs: convert shmem_unuse_inode to radix-swap
8/12 tmpfs: convert shmem_getpage_gfp to radix-swap
9/12 tmpfs: convert mem_cgroup shmem to radix-swap
10/12 tmpfs: convert shmem_writepage and enable swap
11/12 tmpfs: use kmemdup for short symlinks
12/12 mm: a few small updates for radix-swap

fs/stack.c | 5
include/linux/memcontrol.h | 8
include/linux/radix-tree.h | 36
include/linux/shmem_fs.h | 17
include/linux/swapops.h | 23
init/main.c | 2
lib/radix-tree.c | 29
mm/filemap.c | 74 -
mm/memcontrol.c | 66 -
mm/mincore.c | 10
mm/shmem.c | 1515 +++++++++++------------------------
mm/swapfile.c | 20
mm/truncate.c | 8
13 files changed, 669 insertions(+), 1144 deletions(-)

Hugh
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/