summaryrefslogtreecommitdiff
path: root/fs/select.c
diff options
context:
space:
mode:
authorHao Xu <haoxu@linux.alibaba.com>2021-09-12 03:40:52 +0800
committerJens Axboe <axboe@kernel.dk>2021-09-12 19:27:47 -0600
commit767a65e9f31789d80e41edd03a802314905e8fbf (patch)
treeefc0d0cf64e9e0b225c0c9435004b951381ea384 /fs/select.c
parent7a842fb589e3cdbe205bc16dc37c30cf13383159 (diff)
io-wq: fix potential race of acct->nr_workers
Given max_worker is 1, and we currently have 1 running and it is exiting. There may be race like: io_wqe_enqueue worker1 no work there and timeout unlock(wqe->lock) ->insert work -->io_worker_exit lock(wqe->lock) ->if(!nr_workers) //it's still 1 unlock(wqe->lock) goto run_cancel lock(wqe->lock) nr_workers-- ->dec_running ->worker creation fails unlock(wqe->lock) We enqueued one work but there is no workers, causes hung. Signed-off-by: Hao Xu <haoxu@linux.alibaba.com> Signed-off-by: Jens Axboe <axboe@kernel.dk>
Diffstat (limited to 'fs/select.c')
0 files changed, 0 insertions, 0 deletions