rwsem: steal writing sem for better performance

Commit 5a50508 changes to rwsem from mutex, caused aim7 fork_test
performance to dropped 50%. Yuanhan liu did an analysis, found it was
caused by strict sequential writing. Ingo suggest stealing sem writing from
front task in wait queue. https://lkml.org/lkml/2013/1/29/84

So does this patch.
In this patch, I just allow write stealing to happen when the first waiter
is also writer. The performance fully is now fully recovered.

Reported-by: lkp@linux.intel.com
Cc: Ingo Molnar <mingo@kernel.org>
Signed-off-by: Alex Shi <alex.shi@intel.com>
Merge branch for_linus of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs
Source: Updated to 3.4.47
 staging: android: lowmemorykiller: Reduce debug_level to 1

Under certain circumstances, such as after the lowmemorykiller
has recently killed an application, the logs can get flooded
with select to kill messages.
Source: Updated to 3.4.48
Source: Updated to 3.4.48 Part 2
warning TODO: return_address should use unwind tables [-Wcpp]
Source:Starting update to 3.4.49
smp.h: Use local_irq_ in SMP version on each cpu
CPU hotplug: provide a generic helper to disable/enable CPU hotplug
There are instances in the kernel where we would like to disable CPU
hotplug (from sysfs) during some important operation.  Today the freezer
code depends on this and the code to do it was kinda tailor-made for
that.
 msm:board-8064: Correct ab/ib values of 1080p turbo vectors

This change corrects the ab/ib values of turbo vectors
intended for 1080p encoder.
Source: Starting update to 3.4.50
Source: 3.4.50 swap_state
fs: remove extra check to be32_to_cpu() function

Conflicts:
	fs/jbd2/journal.c
 HACK: ARM: disable sleeping while atomic warning in do_signal

ARM disables interrupts in do_signal, which triggers a warning in
try_to_freeze, see details at https://lkml.org/lkml/2011/8/23/221.
To prevent the warnings, add try_to_freeze_nowarn and call it from
do_signal.
Source: update to 3.4.51

Conflicts:
	net/ipv6/addrconf.c
Source: update to 3.4.55