set_task_state(tsk, TASK_UNINTERRUPTIBLE);/* set up my own style of waitqueue */waiter.task = tsk; waiter.flags = RWSEM_WAITING_FOR_WRITE;get_task_struct(tsk); list_add_tail(&waiter.list, &sem->wait_list);/* we don't need to touch the semaphore struct anymore */spin_unlock_irqr...