Whamcloud - gitweb
LU-15477 osc: osc_extent_wait() deadlock 81/46281/2
authorAndriy Skulysh <c17819@cray.com>
Tue, 11 Jan 2022 07:30:49 +0000 (09:30 +0200)
committerOleg Drokin <green@whamcloud.com>
Mon, 31 Jan 2022 01:37:27 +0000 (01:37 +0000)
commit821a8d7b481d34a54044dfe871e4532f0996de8a
tree59fee74c03c4a60bbb4312f8b83a3f0f681eb811
parentd4dd17842a303dd7cf240e010787489311752490
LU-15477 osc: osc_extent_wait() deadlock

Thread 1:
vvp_io_write_commit
osc_io_commit_async
osc_page_cache_add
osc_extent_find
osc_extent_wait

Thread 2:
ptlrpcd_check
ptlrpc_check_set
brw_queue_work
osc_extent_make_ready
vvp_page_make_ready_start
__lock_page

We must not hold a page lock while we do osc_extent_find()

Change-Id: Idf669bc8d9c943f28e3f5986826b9637d66ecfca
HPE-bug-id: LUS-10414
Fixes: a7299cb012 "LU-9920 vvp: dirty pages with pagevec"
Signed-off-by: Andriy Skulysh <andriy.skulysh@hpe.com>
Reviewed-on: https://review.whamcloud.com/46281
Reviewed-by: Patrick Farrell <pfarrell@whamcloud.com>
Tested-by: jenkins <devops@whamcloud.com>
Reviewed-by: Alexander Boyko <alexander.boyko@hpe.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
lustre/osc/osc_cache.c