[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:
Related
is related to LU-5369 servers should reject invalid FIDs, r... Resolved
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.

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