Sorry this patch is also wrong. It assumes that pidfd_get_pid returns a pid in tracee's namespace, but actually it is in tracer's namespace. But this is good news, since we do not need pid translation to decode the fd. I'm sending a new patchset, which successfully decodes the fd.