[LU-12217] ll_migrate() vs truncate deadlock Created: 24/Apr/19  Updated: 29/May/19

Status: Open
Project: Lustre
Component/s: None
Affects Version/s: None
Fix Version/s: None

Type: Bug Priority: Minor
Reporter: Andriy Skulysh Assignee: Andriy Skulysh
Resolution: Unresolved Votes: 0
Labels: None

Severity: 3
Rank (Obsolete): 9223372036854775807

 Description   

ll_migrate() takes inode_lock and sends OST_GETATTR
via ll_data_version(). The server sends BL AST to
a truncate on the same client to release osc lock
but it waits for the inode lock.
It's a wrong locking order beacause all osc operations
take ldlm locks before inode_lock.

inode_lock was added to protect from simultaneous migrates
from 1 client. But lli_lsm_sem is taken for parent,
so inode_lock isn't needed.



 Comments   
Comment by Gerrit Updater [ 24/Apr/19 ]

Andriy Skulysh (c17819@cray.com) uploaded a new patch: https://review.whamcloud.com/34752
Subject: LU-12217 llite: ll_migrate() vs truncate deadlock
Project: fs/lustre-release
Branch: master
Current Patch Set: 1
Commit: d5286b9387032a093cfde379b1ce51facfae37ef

Generated at Sat Feb 10 02:50:39 UTC 2024 using Jira 9.4.14#940014-sha1:734e6822bbf0d45eff9af51f82432957f73aa32c.