author: Jens Axboe <axboe@kernel.dk> 2020-01-14 22:06:11 -0700
committer: Jens Axboe <axboe@kernel.dk> 2020-01-14 22:06:11 -0700
commit: e0bbb3461ae000baec13e8ec5b5063202df228df
parent: 74566df3a71c1b92da608868cca787557d8be7b2
Commit Summary:
Diffstat:
1 file changed, 8 insertions, 4 deletions
diff --git a/fs/io-wq.c b/fs/io-wq.c
index 541c8a3e0bbb..5147d2213b01 100644
--- a/fs/io-wq.c
+++ b/fs/io-wq.c
@@ -445,10 +445,14 @@ next:
task_unlock(current);
}
if ((work->flags & IO_WQ_WORK_NEEDS_USER) && !worker->mm &&
- wq->mm && mmget_not_zero(wq->mm)) {
- use_mm(wq->mm);
- set_fs(USER_DS);
- worker->mm = wq->mm;
+ wq->mm) {
+ if (mmget_not_zero(wq->mm)) {
+ use_mm(wq->mm);
+ set_fs(USER_DS);
+ worker->mm = wq->mm;
+ } else {
+ work->flags |= IO_WQ_WORK_CANCEL;
+ }
}
if (!worker->creds)
worker->creds = override_creds(wq->creds);