io-wq: cancel request if it's asking for files and we don't have them
This can't currently happen, but will be possible shortly. Handle missing files just like we do not being able to grab a needed mm, and mark the request as needing cancelation. Signed-off-by: Jens Axboe <axboe@kernel.dk>
This commit is contained in:
Родитель
3cea11cd5e
Коммит
3dd1680d14
|
@ -482,6 +482,10 @@ static void io_impersonate_work(struct io_worker *worker,
|
||||||
current->files = work->identity->files;
|
current->files = work->identity->files;
|
||||||
current->nsproxy = work->identity->nsproxy;
|
current->nsproxy = work->identity->nsproxy;
|
||||||
task_unlock(current);
|
task_unlock(current);
|
||||||
|
if (!work->identity->files) {
|
||||||
|
/* failed grabbing files, ensure work gets cancelled */
|
||||||
|
work->flags |= IO_WQ_WORK_CANCEL;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if ((work->flags & IO_WQ_WORK_FS) && current->fs != work->identity->fs)
|
if ((work->flags & IO_WQ_WORK_FS) && current->fs != work->identity->fs)
|
||||||
current->fs = work->identity->fs;
|
current->fs = work->identity->fs;
|
||||||
|
|
Загрузка…
Ссылка в новой задаче