[lvc-project] [PATCH 6.12] gfs2: Improve resource group validation and error handling

Fedor Pchelkin pchelkin at ispras.ru
Fri Sep 4 16:56:49 MSK 2026


On Wed, 26. Aug 14:54, Makar Semyonov wrote:
> @@ -882,6 +876,19 @@ static int rgd_insert(struct gfs2_rgrpd *rgd)
>  	rb_link_node(&rgd->rd_node, parent, newn);
>  	rb_insert_color(&rgd->rd_node, &sdp->sd_rindex_tree);
>  	sdp->sd_rgrps++;
> +
> +	prevn = rb_prev(&rgd->rd_node);
> +	if (prevn) {
> +		struct gfs2_rgrpd *prev =
> +			rb_entry(prevn, struct gfs2_rgrpd, rd_node);
> +
> +		if (prev->rd_data0 + prev->rd_data > rgd->rd_addr) {
> +			fs_err(sdp, "overlapping resource groups.\n");
> +			rb_erase(&rgd->rd_node, &sdp->sd_rindex_tree);
> +			return -ENOENT;

Скорее всего после того, как удалили ноду из дерева и возвращаем ошибку,
надо уменьшить обратно счётчик sdp->sd_rgrps.  Выглядит проблемой в
коммите мэйнтейнера, предлагаю подготовить на это отдельный патч.

И ещё вопрос: нужно ли здесь проверять rb_next() ноду дерева касаемо
перехлёста групп? или достаточно только с rb_prev(), как сейчас сделано?

> +		}
> +	}
> +
>  	return 0;
>  }
>  



More information about the lvc-project mailing list