Revert "Revert "Merge remote-tracking branch 'stable/linux-3.4.y' into thunderkat""

This reverts commit 71a197806594712fac54a1632455d2be722708fe. Updated back to 3.4.103 as it seems now kernel is stable

Conflicts:
	Makefile
	drivers/staging/zram/zram_drv.c
	drivers/staging/zram/zram_sysfs.c
	kernel/futex.c
	mm/vmscan.c
f2fs: introduce cp_control structure

This patch add a new data structure to control checkpoint parameters.
Currently, it presents the reason of checkpoint such as is_umount and normal
sync.

Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
f2fs: introduce FITRIM in f2fs_ioctl

This patch introduces FITRIM in f2fs_ioctl.
In this case, f2fs will issue small discards and prefree discards as many as
possible for the given area.

Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
f2fs: refactor flush_nat_entries to remove costly reorganizing ops

Previously, f2fs tries to reorganize the dirty nat entries into multiple sets
according to its nid ranges. This can improve the flushing nat pages, however,
if there are a lot of cached nat entries, it becomes a bottleneck.

This patch introduces a new set management flow by removing dirty nat list and
adding a series of set operations when the nat entry becomes dirty.

Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>