[LU-3841] lod_use_defined_striping() asserts on released layouts Created: 27/Aug/13 Updated: 03/Sep/13 Resolved: 03/Sep/13 |
|
| Status: | Closed |
| Project: | Lustre |
| Component/s: | None |
| Affects Version/s: | Lustre 2.5.0 |
| Fix Version/s: | Lustre 2.5.0 |
| Type: | Bug | Priority: | Critical |
| Reporter: | John Hammond | Assignee: | John Hammond |
| Resolution: | Fixed | Votes: | 0 |
| Labels: | HSM, lod | ||
| Severity: | 3 |
| Rank (Obsolete): | 9943 |
| Description |
|
In lod_use_defined_striping() the assertion on buf->lb_len must come after the fixup for released layouts. mo->ldo_pattern = le32_to_cpu(v1->lmm_pattern);
mo->ldo_stripe_size = le32_to_cpu(v1->lmm_stripe_size);
mo->ldo_stripenr = le16_to_cpu(v1->lmm_stripe_count);
mo->ldo_layout_gen = le16_to_cpu(v1->lmm_layout_gen);
LASSERTF(buf->lb_len >= lov_mds_md_size(mo->ldo_stripenr, magic),
"buf %p, mo %p, magic %u\n", buf, mo, magic);
/* fixup for released file before object initialization */
if (mo->ldo_pattern & LOV_PATTERN_F_RELEASED) {
mo->ldo_released_stripenr = mo->ldo_stripenr;
mo->ldo_stripenr = 0;
}
Moreover we are passing a _DEF magic to lov_mds_md_size() which only handles non-_DEF magics properly. |
| Comments |
| Comment by John Hammond [ 27/Aug/13 ] |
|
Please see http://review.whamcloud.com/7467. |
| Comment by John Hammond [ 03/Sep/13 ] |
|
Patch landed to master. |