RWSEM_OWNER_FLAGS_MASK
(atomic_long_read(&sem->owner) & ~RWSEM_OWNER_FLAGS_MASK);
while ((val & ~RWSEM_OWNER_FLAGS_MASK) == (unsigned long)current) {
val & RWSEM_OWNER_FLAGS_MASK))
*pflags = owner & RWSEM_OWNER_FLAGS_MASK;
return (struct task_struct *)(owner & ~RWSEM_OWNER_FLAGS_MASK);