diff options
author | Jens Axboe | 2020-01-29 13:46:44 -0700 |
---|---|---|
committer | Jens Axboe | 2020-01-29 13:46:44 -0700 |
commit | f86cd20c9454847a524ddbdcdec32c0380ed7c9b (patch) | |
tree | c6f996fd423f2793fe0aba28e1a0b7b4f98dc3aa /fs/io-wq.c | |
parent | 75c6a03904e0dd414a4d99a3072075cb5117e5bc (diff) |
io_uring: fix linked command file table usage
We're not consistent in how the file table is grabbed and assigned if we
have a command linked that requires the use of it.
Add ->file_table to the io_op_defs[] array, and use that to determine
when to grab the table instead of having the handlers set it if they
need to defer. This also means we can kill the IO_WQ_WORK_NEEDS_FILES
flag. We always initialize work->files, so io-wq can just check for
that.
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Diffstat (limited to 'fs/io-wq.c')
-rw-r--r-- | fs/io-wq.c | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/fs/io-wq.c b/fs/io-wq.c index f7eb577ccd2d..cb60a42b9fdf 100644 --- a/fs/io-wq.c +++ b/fs/io-wq.c @@ -476,8 +476,7 @@ next: if (work->flags & IO_WQ_WORK_CB) work->func(&work); - if ((work->flags & IO_WQ_WORK_NEEDS_FILES) && - current->files != work->files) { + if (work->files && current->files != work->files) { task_lock(current); current->files = work->files; task_unlock(current); |