On Sat, Feb 9, 2013 at 10:45 AM, Michel Lespinasse <[email protected]> wrote: > + if (waiter->type != RWSEM_WAITING_FOR_WRITE) { > + list_del(&waiter->list); > + > + /* Set RWSEM_WAITING_BIAS before waking the last > reader > + * so we know there will be a remaining active locker. > + */ > + if (!(--readers) && !list_empty(&sem->wait_list)) > + rwsem_atomic_add(RWSEM_WAITING_BIAS, sem); > + > + tsk = waiter->task; > + smp_mb();
For what with mb? > + waiter->task = NULL; > + wake_up_process(tsk); > + put_task_struct(tsk); > + } > + } while (readers); > + sem->wait_readers = 0; > + /* If there are no active locks, wake the front queued process(es). */ s/locks/lockers/ > + if (!(count & RWSEM_ACTIVE_MASK)) > + sem = __rwsem_do_wake(sem, RWSEM_WAKE_ANY); -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/

