[LU-6059] missing unlock in error path of ll_lov_setstripe_ea_info() Created: 19/Dec/14 Updated: 07/Jan/15 Resolved: 07/Jan/15 |
|
| Status: | Closed |
| 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: | HB, llite | ||
| Severity: | 3 |
| Rank (Obsolete): | 16873 |
| Description |
|
In ll_lov_setstripe_ea_info() we forget to call ll_inode_size_unlock() in the out_req_free error path: ll_inode_size_lock(inode);
oit.it_flags |= MDS_OPEN_BY_FID;
rc = ll_intent_file_open(file, lum, lum_size, &oit);
if (rc)
GOTO(out_unlock, rc);
rc = oit.d.lustre.it_status;
if (rc < 0)
GOTO(out_req_free, rc);
ll_release_openhandle(file->f_dentry, &oit);
out_unlock:
ll_inode_size_unlock(inode);
ll_intent_release(&oit);
ccc_inode_lsm_put(inode, lsm);
out:
cl_lov_delay_create_clear(&file->f_flags);
RETURN(rc);
out_req_free:
ptlrpc_req_finished((struct ptlrpc_request *) oit.d.lustre.it_data);
goto out;
}
This was found via code inspection. I didn't check if this path is reachable. |
| Comments |
| Comment by Gerrit Updater [ 22/Dec/14 ] |
|
John L. Hammond (john.hammond@intel.com) uploaded a new patch: http://review.whamcloud.com/13167 |
| Comment by Gerrit Updater [ 07/Jan/15 ] |
|
Oleg Drokin (oleg.drokin@intel.com) merged in patch http://review.whamcloud.com/13167/ |
| Comment by John Hammond [ 07/Jan/15 ] |
|
Patch landed to master for 2.7. |