if (!task)
goto err;
- rcu_read_lock();
- nsp = task_nsproxy(task);
- if (!nsp) {
- rcu_read_unlock();
+ task_lock(task);
+ nsp = task->nsproxy;
+ if (!nsp || !nsp->mnt_ns) {
+ task_unlock(task);
put_task_struct(task);
goto err;
}
ns = nsp->mnt_ns;
- if (!ns) {
- rcu_read_unlock();
- put_task_struct(task);
- goto err;
- }
get_mnt_ns(ns);
- rcu_read_unlock();
- task_lock(task);
if (!task->fs) {
task_unlock(task);
put_task_struct(task);
p->root = root;
p->m.poll_event = ns->event;
p->show = show;
+ p->cached_event = ~0ULL;
return 0;