diff --git a/fs/userfaultfd.c b/fs/userfaultfd.c index c0b2787bdcd4..26f9591b04b1 100644 --- a/fs/userfaultfd.c +++ b/fs/userfaultfd.c @@ -851,6 +851,9 @@ wakeup: __wake_up_locked_key(&ctx->fault_wqh, TASK_NORMAL, &range); spin_unlock(&ctx->fault_pending_wqh.lock); + /* Flush pending events that may still wait on event_wqh */ + wake_up_all(&ctx->event_wqh); + wake_up_poll(&ctx->fd_wqh, POLLHUP); userfaultfd_ctx_put(ctx); return 0;