metaslab_alloc: make hint BP and DVA const (#17324)

Nothing modifies them, and nothing should, so lets try to enforce that.

Sponsored-by: Klara, Inc.
Sponsored-by: Wasabi Technology, Inc.

Signed-off-by: Rob Norris <rob.norris@klarasystems.com>
Reviewed-by: Alexander Motin <mav@FreeBSD.org>
Reviewed-by: George Melikov <mail@gmelikov.ru>
This commit is contained in:
Rob Norris 2025-05-13 03:52:46 +10:00 committed by GitHub
parent 49fbdd4533
commit b2284aedab
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 8 additions and 8 deletions

View File

@ -81,12 +81,12 @@ uint64_t metaslab_largest_allocatable(metaslab_t *);
#define METASLAB_ASYNC_ALLOC 0x8 #define METASLAB_ASYNC_ALLOC 0x8
int metaslab_alloc(spa_t *, metaslab_class_t *, uint64_t, blkptr_t *, int, int metaslab_alloc(spa_t *, metaslab_class_t *, uint64_t, blkptr_t *, int,
uint64_t, blkptr_t *, int, zio_alloc_list_t *, int, const void *); uint64_t, const blkptr_t *, int, zio_alloc_list_t *, int, const void *);
int metaslab_alloc_range(spa_t *, metaslab_class_t *, uint64_t, uint64_t, int metaslab_alloc_range(spa_t *, metaslab_class_t *, uint64_t, uint64_t,
blkptr_t *, int, uint64_t, blkptr_t *, int, zio_alloc_list_t *, blkptr_t *, int, uint64_t, const blkptr_t *, int, zio_alloc_list_t *,
int, const void *, uint64_t *); int, const void *, uint64_t *);
int metaslab_alloc_dva(spa_t *, metaslab_class_t *, uint64_t, int metaslab_alloc_dva(spa_t *, metaslab_class_t *, uint64_t,
dva_t *, int, dva_t *, uint64_t, int, zio_alloc_list_t *, int); dva_t *, int, const dva_t *, uint64_t, int, zio_alloc_list_t *, int);
void metaslab_free(spa_t *, const blkptr_t *, uint64_t, boolean_t); void metaslab_free(spa_t *, const blkptr_t *, uint64_t, boolean_t);
void metaslab_free_concrete(vdev_t *, uint64_t, uint64_t, boolean_t); void metaslab_free_concrete(vdev_t *, uint64_t, uint64_t, boolean_t);
void metaslab_free_dva(spa_t *, const dva_t *, boolean_t); void metaslab_free_dva(spa_t *, const dva_t *, boolean_t);

View File

@ -5315,7 +5315,7 @@ metaslab_group_allocatable(spa_t *spa, metaslab_group_t *mg, uint64_t psize,
static int static int
metaslab_alloc_dva_range(spa_t *spa, metaslab_class_t *mc, uint64_t psize, metaslab_alloc_dva_range(spa_t *spa, metaslab_class_t *mc, uint64_t psize,
uint64_t max_psize, dva_t *dva, int d, dva_t *hintdva, uint64_t txg, uint64_t max_psize, dva_t *dva, int d, const dva_t *hintdva, uint64_t txg,
int flags, zio_alloc_list_t *zal, int allocator, uint64_t *actual_psize) int flags, zio_alloc_list_t *zal, int allocator, uint64_t *actual_psize)
{ {
metaslab_class_allocator_t *mca = &mc->mc_allocator[allocator]; metaslab_class_allocator_t *mca = &mc->mc_allocator[allocator];
@ -5440,7 +5440,7 @@ next:
*/ */
int int
metaslab_alloc_dva(spa_t *spa, metaslab_class_t *mc, uint64_t psize, metaslab_alloc_dva(spa_t *spa, metaslab_class_t *mc, uint64_t psize,
dva_t *dva, int d, dva_t *hintdva, uint64_t txg, int flags, dva_t *dva, int d, const dva_t *hintdva, uint64_t txg, int flags,
zio_alloc_list_t *zal, int allocator) zio_alloc_list_t *zal, int allocator)
{ {
return (metaslab_alloc_dva_range(spa, mc, psize, psize, dva, d, hintdva, return (metaslab_alloc_dva_range(spa, mc, psize, psize, dva, d, hintdva,
@ -5932,7 +5932,7 @@ metaslab_claim_dva(spa_t *spa, const dva_t *dva, uint64_t txg)
int int
metaslab_alloc(spa_t *spa, metaslab_class_t *mc, uint64_t psize, blkptr_t *bp, metaslab_alloc(spa_t *spa, metaslab_class_t *mc, uint64_t psize, blkptr_t *bp,
int ndvas, uint64_t txg, blkptr_t *hintbp, int flags, int ndvas, uint64_t txg, const blkptr_t *hintbp, int flags,
zio_alloc_list_t *zal, int allocator, const void *tag) zio_alloc_list_t *zal, int allocator, const void *tag)
{ {
return (metaslab_alloc_range(spa, mc, psize, psize, bp, ndvas, txg, return (metaslab_alloc_range(spa, mc, psize, psize, bp, ndvas, txg,
@ -5942,11 +5942,11 @@ metaslab_alloc(spa_t *spa, metaslab_class_t *mc, uint64_t psize, blkptr_t *bp,
int int
metaslab_alloc_range(spa_t *spa, metaslab_class_t *mc, uint64_t psize, metaslab_alloc_range(spa_t *spa, metaslab_class_t *mc, uint64_t psize,
uint64_t max_psize, blkptr_t *bp, int ndvas, uint64_t txg, uint64_t max_psize, blkptr_t *bp, int ndvas, uint64_t txg,
blkptr_t *hintbp, int flags, zio_alloc_list_t *zal, int allocator, const blkptr_t *hintbp, int flags, zio_alloc_list_t *zal, int allocator,
const void *tag, uint64_t *actual_psize) const void *tag, uint64_t *actual_psize)
{ {
dva_t *dva = bp->blk_dva; dva_t *dva = bp->blk_dva;
dva_t *hintdva = (hintbp != NULL) ? hintbp->blk_dva : NULL; const dva_t *hintdva = (hintbp != NULL) ? hintbp->blk_dva : NULL;
int error = 0; int error = 0;
ASSERT0(BP_GET_LOGICAL_BIRTH(bp)); ASSERT0(BP_GET_LOGICAL_BIRTH(bp));