Whamcloud - gitweb
LU-15477 osc: osc_extent_wait() deadlock
authorAndriy Skulysh <andriy.skulysh@hpe.com>
Wed, 14 Feb 2024 08:49:30 +0000 (00:49 -0800)
committerAndreas Dilger <adilger@whamcloud.com>
Sun, 3 Mar 2024 10:16:30 +0000 (10:16 +0000)
commit130750ff23d260e59ba1b794fcc4f9208bb7bf07
treed28ae3ccfaae351d9d484ef00674a995893b19af
parent17ec47e55c605ef9ae3a75ddc2e73873480a4ce9
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()

Lustre-change: https://review.whamcloud.com/46281
Lustre-commit: 821a8d7b481d34a54044dfe871e4532f0996de8a

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-by: Patrick Farrell <pfarrell@whamcloud.com>
Reviewed-on: https://review.whamcloud.com/c/ex/lustre-release/+/54032
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
lustre/osc/osc_cache.c