diff --git a/fs/exofs/ore_raid.c b/fs/exofs/ore_raid.c index 659129d5e9f71eb131c5d5d6c6d069f482d17739..199590f362030d2c4dad33968b2e0a12ef90299a 100644 --- a/fs/exofs/ore_raid.c +++ b/fs/exofs/ore_raid.c @@ -139,6 +139,8 @@ static int _sp2d_alloc(unsigned pages_in_unit, unsigned group_width, /* Allocate additionally needed a1pa items in PAGE_SIZE chunks. */ for (i = 0; i < pages_in_unit; ++i) { + struct __1_page_stripe *stripe = &sp2d->_1p_stripes[i]; + if (unlikely(__a1pa >= __a1pa_end)) { num_a1pa = min_t(unsigned, PAGE_SIZE / sizeof__a1pa, pages_in_unit - i); @@ -152,7 +154,7 @@ static int _sp2d_alloc(unsigned pages_in_unit, unsigned group_width, } __a1pa_end = __a1pa + alloc_size; /* First *pages is marked for kfree of the buffer */ - sp2d->_1p_stripes[i].alloc = true; + stripe->alloc = true; } /* @@ -160,11 +162,9 @@ static int _sp2d_alloc(unsigned pages_in_unit, unsigned group_width, * it which was either part of the original PAGE_SIZE * allocation or the subsequent allocation in this loop. */ - sp2d->_1p_stripes[i].pages = (void *)__a1pa; - sp2d->_1p_stripes[i].scribble = - sp2d->_1p_stripes[i].pages + group_width; - sp2d->_1p_stripes[i].page_is_read = - (char *)(sp2d->_1p_stripes[i].scribble + group_width); + stripe->pages = (void *)__a1pa; + stripe->scribble = stripe->pages + group_width; + stripe->page_is_read = (char *)stripe->scribble + group_width; __a1pa += sizeof__a1pa; } diff --git a/fs/exofs/super.c b/fs/exofs/super.c index f3c29e9326f1b615afb79c869ba2acc2aa3b83d4..fabd15e482befd156b1404ec65d799b8c2b86595 100644 --- a/fs/exofs/super.c +++ b/fs/exofs/super.c @@ -552,7 +552,7 @@ static int __alloc_dev_table(struct exofs_sb_info *sbi, unsigned numdevs, /* Twice bigger table: See exofs_init_comps() and comment at * exofs_read_lookup_dev_table() */ - size_t numores = numdevs * 2 - 1; + const size_t numores = numdevs * 2 - 1; struct exofs_dev *eds; unsigned i;