Uploaded image for project: 'Lustre'
  1. Lustre
  2. LU-3841

lod_use_defined_striping() asserts on released layouts

    XMLWordPrintable

Details

    • Bug
    • Resolution: Fixed
    • Critical
    • Lustre 2.5.0
    • Lustre 2.5.0
    • 3
    • 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.

      Attachments

        Activity

          People

            jhammond John Hammond
            jhammond John Hammond
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: