[LU-5370] mdt_open_by_fid_lock() may return -EREMOTE without setting lock handle Created: 18/Jul/14 Updated: 14/Jun/18 Resolved: 11/Aug/14 |
|
| Status: | Resolved |
| Project: | Lustre |
| Component/s: | None |
| Affects Version/s: | Lustre 2.7.0 |
| Fix Version/s: | Lustre 2.7.0 |
| Type: | Bug | Priority: | Critical |
| Reporter: | John Hammond | Assignee: | John Hammond |
| Resolution: | Fixed | Votes: | 0 |
| Labels: | fault, mdt | ||
| Issue Links: |
|
||||||||
| Severity: | 3 | ||||||||
| Rank (Obsolete): | 14974 | ||||||||
| Description |
|
In mdt_open_by_fid_lock() if rr_fid2 designates a remote object then we return -EREMOTE without taking a lock. Later in mdt_intent_reint() this will crash: /* the open lock or the lock for cross-ref object should be * returned to the client */ if (rc == -EREMOTE || mdt_get_disposition(rep, DISP_OPEN_LOCK)) { LASSERT(lustre_handle_is_used(&lhc->mlh_reg_lh)); rep->lock_policy_res2 = 0; rc = mdt_intent_lock_replace(info, lockp, lhc, flags); RETURN(rc); } |
| Comments |
| Comment by John Hammond [ 24/Jul/14 ] |
|
Please see http://review.whamcloud.com/11218. |
| Comment by Jodi Levi (Inactive) [ 11/Aug/14 ] |
|
Patch landed to Master. |