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

Infinite loop in lsm_alloc_plain on error cleanup

Details

    • Bug
    • Resolution: Fixed
    • Minor
    • Lustre 2.8.0
    • None
    • 3
    • 9223372036854775807

    Description

      A recent lov cleanup (patch 5ccd7a4a556b1a847eb5bff8b2395522a6f4bca8 http://review.whamcloud.com/13722 by John Hammond) has introduced an infinite loop in lsm_alloc_plain by changing type of variable 'i' from signed to unsigned:

      struct lov_stripe_md *lsm_alloc_plain(u16 stripe_count)
      {
      ...
              unsigned int i;
      ...
      err:
              while (--i >= 0)
                      OBD_SLAB_FREE(lsm->lsm_oinfo[i], lov_oinfo_slab, sizeof(*loi));
      

      Now the while loop is infinite.

      Attachments

        Activity

          People

            jhammond John Hammond
            green Oleg Drokin
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: