Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 5d50d532 authored by Steven Whitehouse's avatar Steven Whitehouse
Browse files

GFS2: Fix case where reservation finished at end of rgrp



One corner case which the original patch failed to take into
account was when there is a reservation which ended such that
the following block was one beyond the end of the rgrp in
question. This extra test fixes that case.

Signed-off-by: default avatarSteven Whitehouse <swhiteho@redhat.com>
Reported-by: default avatarBob Peterson <rpeterso@redhat.com>
Tested-by: default avatarBob Peterson <rpeterso@redhat.com>
parent 24d634e8
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -1596,6 +1596,12 @@ find_next:
			n += (rbm->bi - initial_bi);
			goto find_next;
		}
		if (ret == -E2BIG) {
			index = 0;
			rbm->offset = 0;
			n += (rbm->bi - initial_bi);
			goto res_covered_end_of_rgrp;
		}
		return ret;

bitmap_full:	/* Mark bitmap as full and fall through */
@@ -1608,6 +1614,7 @@ next_bitmap: /* Find next bitmap in the rgrp */
		index++;
		if (index == rbm->rgd->rd_length)
			index = 0;
res_covered_end_of_rgrp:
		rbm->bi = &rbm->rgd->rd_bits[index];
		if ((index == 0) && nowrap)
			break;