rwsem: backport from Linux 3.10

Conflicts:
	fs/sync.c
	lib/rwsem-spinlock.c
	lib/rwsem.c