Messages in this thread | | | Date | Thu, 28 Jun 2012 18:45:39 +0200 | From | Oleg Nesterov <> | Subject | Re: [PATCH 0/4] Was: deferring __fput() |
| |
Forgot to mention...
And I still think that task_work_add() should not succeed unconditionally, it synchronize with exit_task_work(). Otherwise keyctl_session_to_parent() is broken.
On 06/28, Oleg Nesterov wrote: > > On 06/28, Al Viro wrote: > > > > The list removal logics in mine looks really ugly ;-/ > > Basically the code is almost the same as mine. > > But task_work_add() can be simplified a bit, no need to check > last != NULL twice. > > last = task->task_works ?: twork; > task->last_twork = twork; > twork->next = last->next; /* XXX */ > last->next = twork; > > If ->task_works == NULL, then XXX is meaningless but safe. > > Oleg.
| |