Messages in this thread | | | From | KOSAKI Motohiro <> | Date | Tue, 16 Oct 2012 01:10:34 -0400 | Subject | Re: mpol_to_str revisited. |
| |
On Mon, Oct 15, 2012 at 11:58 PM, David Rientjes <rientjes@google.com> wrote: > On Mon, 15 Oct 2012, KOSAKI Motohiro wrote: > >> I don't think 80de7c3138ee9fd86a98696fd2cf7ad89b995d0a is right fix. > > It's certainly not a complete fix, but I think it's a much better result > of the race, i.e. we don't panic anymore, we simply fail the read() > instead.
Even though 80de7c3138ee9fd86a98696fd2cf7ad89b995d0a itself is simple. It bring to caller complex. That's not good and have no worth.
>> we should >> close a race (or kill remain ref count leak) if we still have. > > As I mentioned earlier in the thread, the read() is done here on a task > while only a reference to the task_struct is taken and we do not hold > task_lock() which is required for task->mempolicy. Once that is fixed, > mpol_to_str() should never be called for !task->mempolicy so it will never > need to return -EINVAL in such a condition.
I agree that's obviously a bug and we should fix it.
| |