Merge tag 'io_uring-5.5-2020-01-26' of git://git.kernel.dk/linux-block
Pull io_uring fixes from Jens Axboe: "Fix for two regressions in this cycle, both reported by the postgresql use case. One removes the added restriction on who can submit IO, making it possible for rings shared across forks to do so. The other fixes an issue for the same kind of use case, where one exiting process would cancel all IO" * tag 'io_uring-5.5-2020-01-26' of git://git.kernel.dk/linux-block: io_uring: don't cancel all work on process exit Revert "io_uring: only allow submit from owning task"
This commit is contained in:
@ -5044,10 +5044,6 @@ static int io_uring_flush(struct file *file, void *data)
|
|||||||
struct io_ring_ctx *ctx = file->private_data;
|
struct io_ring_ctx *ctx = file->private_data;
|
||||||
|
|
||||||
io_uring_cancel_files(ctx, data);
|
io_uring_cancel_files(ctx, data);
|
||||||
if (fatal_signal_pending(current) || (current->flags & PF_EXITING)) {
|
|
||||||
io_cqring_overflow_flush(ctx, true);
|
|
||||||
io_wq_cancel_all(ctx->io_wq);
|
|
||||||
}
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -5161,12 +5157,6 @@ SYSCALL_DEFINE6(io_uring_enter, unsigned int, fd, u32, to_submit,
|
|||||||
} else if (to_submit) {
|
} else if (to_submit) {
|
||||||
struct mm_struct *cur_mm;
|
struct mm_struct *cur_mm;
|
||||||
|
|
||||||
if (current->mm != ctx->sqo_mm ||
|
|
||||||
current_cred() != ctx->creds) {
|
|
||||||
ret = -EPERM;
|
|
||||||
goto out;
|
|
||||||
}
|
|
||||||
|
|
||||||
to_submit = min(to_submit, ctx->sq_entries);
|
to_submit = min(to_submit, ctx->sq_entries);
|
||||||
mutex_lock(&ctx->uring_lock);
|
mutex_lock(&ctx->uring_lock);
|
||||||
/* already have mm, so io_submit_sqes() won't try to grab it */
|
/* already have mm, so io_submit_sqes() won't try to grab it */
|
||||||
|
Reference in New Issue
Block a user