Details

    • Type: Technical task
    • Status: Resolved
    • Priority: Critical
    • Resolution: Fixed
    • Affects Version/s: Lustre 2.4.0, Lustre 2.8.0
    • Fix Version/s: Lustre 2.11.0
    • Labels:
    • Environment:
      RHEL6
    • Story Points:
      2
    • Rank (Obsolete):
      5605

      Description

         #define BIO_RDONLY 31 /* device is readonly */
      #define BIO_POOL_IDX(bio) ((bio)->bi_flags >> BIO_POOL_OFFSET)

      void bio_free(struct bio *bio, struct bio_set *bs)
      {
      void *p;

      if (bio_has_allocated_vec(bio))
      bvec_free_bs(bs, bio->bi_io_vec, BIO_POOL_IDX(bio));

      ...
      BIO_POOL_IDX()

      void bvec_free_bs(struct bio_set *bs, struct bio_vec *bv, unsigned int idx)
      {
      BIO_BUG_ON(idx >= BIOVEC_NR_POOLS);

      with RDONLY set BIO_POOL_IDX() can get larger than BIOVEC_NR_POOLS and we hit the assertion.

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                green Oleg Drokin
                Reporter:
                bzzz Alex Zhuravlev
              • Votes:
                0 Vote for this issue
                Watchers:
                20 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: