Userfaultfd is the kind of fd that does not need a wake all semantics when wake up. Enqueue using the new POLL_ENQUEUE_EXCLUSIVE flag. Signed-off-by: Peter Xu <peterx@xxxxxxxxxx> --- fs/userfaultfd.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fs/userfaultfd.c b/fs/userfaultfd.c index f7fda7d0c994..9c39adc398fc 100644 --- a/fs/userfaultfd.c +++ b/fs/userfaultfd.c @@ -994,7 +994,7 @@ static __poll_t userfaultfd_poll(struct file *file, poll_table *wait) struct userfaultfd_ctx *ctx = file->private_data; __poll_t ret; - poll_wait(file, &ctx->fd_wqh, wait); + poll_wait_exclusive(file, &ctx->fd_wqh, wait); if (!userfaultfd_is_initialized(ctx)) return EPOLLERR; -- 2.41.0