Details
-
Bug
-
Resolution: Not a Bug
-
Minor
-
None
-
None
-
3
-
9223372036854775807
Description
In mdt_reint_unlink we have suspect locking cleanup on error:
rc = mdt_reint_object_lock(info, mc, child_lh, lock_ibits,
cos_incompat);
if (rc != 0)
GOTO(unlock_child, rc);
...
unlock_child:
mdt_unlock_slaves(info, mc, MDS_INODELOCK_UPDATE, s0_lh, s0_obj, einfo,
rc);
mdt_object_unlock(info, mc, child_lh, rc);
unlock_parent:
mdt_object_unlock(info, mp, parent_lh, rc);
put_child:
mdt_object_put(info->mti_env, mc);
put_parent:
mdt_object_put(info->mti_env, mp);
So it looks like we failed a child lock and then jus jump to unlock it anyway?
need to make that goto to unlock_parent?
Also need to check if the below lock_slaves call to unlock slaves would be fine too. Not even sure why the unlock order is reversed.
Attachments
Activity
Resolution | New: Not a Bug [ 6 ] | |
Status | Original: Open [ 1 ] | New: Resolved [ 5 ] |
Assignee | Original: WC Triage [ wc-triage ] | New: Lai Siyao [ laisiyao ] |
Fix Version/s | New: Lustre 2.11.0 [ 13091 ] | |
Fix Version/s | Original: Lustre 2.10.0 [ 12204 ] |
Fix Version/s | New: Lustre 2.10.0 [ 12204 ] | |
Fix Version/s | Original: Lustre 2.9.0 [ 11891 ] |
Fix Version/s | New: Lustre 2.9.0 [ 11891 ] |