lib/rwsem.c: steal writing sem for better performance fixed for 3.0.y

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>

lib/rwsem.c: fix compatibility issues with Linux 3.0.y
Signed-off-by: faux123 <reioux@gmail.com>

Signed-off-by: zwliew <zhaoweiliew@gmail.com>
defconfig: Made SIO default I/O scheduler

Change-Id: I9563f446a387a2f6ceb1ecbb2c43fd584b618e3c
Signed-off-by: zwliew <zhaoweiliew@gmail.com>
block: Tweaked SIO scheduler

Change-Id: I918033f32f8b7cfe1e795a7aafa2c8d0d4a35f8c
Signed-off-by: zwliew <zhaoweiliew@gmail.com>