[LU-14877] Lock inversion between inode mutex and layout mutex Created: 21/Jul/21 Updated: 16/Sep/21 Resolved: 31/Aug/21 |
|
| Status: | Resolved |
| Project: | Lustre |
| Component/s: | None |
| Affects Version/s: | None |
| Fix Version/s: | Lustre 2.15.0 |
| Type: | Bug | Priority: | Major |
| Reporter: | Oleg Drokin | Assignee: | Oleg Drokin |
| Resolution: | Fixed | Votes: | 0 |
| Labels: | None | ||
| Issue Links: |
|
||||||||
| Severity: | 3 | ||||||||
| Rank (Obsolete): | 9223372036854775807 | ||||||||
| Description |
|
ll_fsync is taking an inode mutex and then creates IO that might go into layout refresh that might take layout mutex and block for IOs to finish write path might go into vvp_io_write_start with active IOs already incremented because IO was started and block on the locked inode held by ll_fsync. Thus the deadlock. It looks like we don't really need the inode lock held in ll_fsync at at least not for as much? the |
| Comments |
| Comment by Gerrit Updater [ 21/Jul/21 ] |
|
Oleg Drokin (green@whamcloud.com) uploaded a new patch: https://review.whamcloud.com/44368 |
| Comment by Gerrit Updater [ 26/Jul/21 ] |
|
Pushed patch against wrong LU - whoops! |
| Comment by Gerrit Updater [ 31/Aug/21 ] |
|
"Oleg Drokin <green@whamcloud.com>" merged in patch https://review.whamcloud.com/44368/ |
| Comment by Peter Jones [ 31/Aug/21 ] |
|
Landed for 2.15 |