[PATCH 0/9] swapfile: cleanups and solidstate mods

Hugh Dickins
2008-11-25T21:35:02Z

Here's a batch of 9 mm patches, intended for 2.6.29: a minor bugfix
and some cleanups in swapfile.c, before improving the behaviour of
swap on solidstate, by implementing discard and better nonrotational
allocation. Hopefully. I don't have a device which reports either
capability, so have merely hacked it for testing.

I'll send all the patches to linux-mm,
but add linux-kernel and a panel of experts in for the last four.

Though most of the testing has been against 2.6.28-rc6 and its
precursors, these patches are diffed to slot in to the mmotm series
after my previous patches, just before "mmend".

include/linux/swap.h | 14 -
mm/swapfile.c | 449 +++++++++++++++++++++++++++++------------
2 files changed, 330 insertions(+), 133 deletions(-)

The reindentation of sys_swapon() in 4/9 does clash with
memcg-swap-cgroup-for-remembering-usage.patch
Please replace its final hunk by these two hunks
(the second hunk fixes freeing of resources on error):

@@ -1821,6 +1825,11 @@ asmlinkage long sys_swapon(const char __
}
swap_map[page_nr] = SWAP_MAP_BAD;
}
+
+ error = swap_cgroup_swapon(type, maxpages);
+ if (error)
+ goto bad_swap;
+
nr_good_pages = swap_header->info.last_page -
swap_header->info.nr_badpages -
1 /* header page */;
@@ -1893,6 +1902,7 @@ bad_swap:
bd_release(bdev);
}
destroy_swap_extents(p);
+ swap_cgroup_swapoff(type);
bad_swap_2:
spin_lock(&swap_lock);
p->swap_file = NULL;