io-wq: ensure work->task_pid is cleared on init
We use ->task_pid for exit cancellation, but we need to ensure it's
cleared to zero for io_req_work_grab_env() to do the right thing. Take
a suggestion from Bart and clear the whole thing, just setting the
function passed in. This makes it more future proof as well.
Fixes: 36282881a7
("io-wq: add io_wq_cancel_pid() to cancel based on a specific pid")
Signed-off-by: Jens Axboe <axboe@kernel.dk>
This commit is contained in:
parent
3030fd4cb7
commit
2d141dd2ca
14
fs/io-wq.h
14
fs/io-wq.h
|
@ -79,16 +79,10 @@ struct io_wq_work {
|
|||
pid_t task_pid;
|
||||
};
|
||||
|
||||
#define INIT_IO_WORK(work, _func) \
|
||||
do { \
|
||||
(work)->list.next = NULL; \
|
||||
(work)->func = _func; \
|
||||
(work)->files = NULL; \
|
||||
(work)->mm = NULL; \
|
||||
(work)->creds = NULL; \
|
||||
(work)->fs = NULL; \
|
||||
(work)->flags = 0; \
|
||||
} while (0) \
|
||||
#define INIT_IO_WORK(work, _func) \
|
||||
do { \
|
||||
*(work) = (struct io_wq_work){ .func = _func }; \
|
||||
} while (0) \
|
||||
|
||||
typedef void (get_work_fn)(struct io_wq_work *);
|
||||
typedef void (put_work_fn)(struct io_wq_work *);
|
||||
|
|
Loading…
Reference in New Issue