MCPcopy Create free account
hub / github.com/F-Stack/f-stack / vdev_uberblock_load_impl

Function vdev_uberblock_load_impl

freebsd/contrib/openzfs/module/zfs/vdev_label.c:1484–1503  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1482}
1483
1484static void
1485vdev_uberblock_load_impl(zio_t *zio, vdev_t *vd, int flags,
1486 struct ubl_cbdata *cbp)
1487{
1488 for (int c = 0; c < vd->vdev_children; c++)
1489 vdev_uberblock_load_impl(zio, vd->vdev_child[c], flags, cbp);
1490
1491 if (vd->vdev_ops->vdev_op_leaf && vdev_readable(vd) &&
1492 vd->vdev_ops != &vdev_draid_spare_ops) {
1493 for (int l = 0; l < VDEV_LABELS; l++) {
1494 for (int n = 0; n < VDEV_UBERBLOCK_COUNT(vd); n++) {
1495 vdev_label_read(zio, vd, l,
1496 abd_alloc_linear(VDEV_UBERBLOCK_SIZE(vd),
1497 B_TRUE), VDEV_UBERBLOCK_OFFSET(vd, n),
1498 VDEV_UBERBLOCK_SIZE(vd),
1499 vdev_uberblock_load_done, zio, flags);
1500 }
1501 }
1502 }
1503}
1504
1505/*
1506 * Reads the 'best' uberblock from disk along with its associated

Callers 1

vdev_uberblock_loadFunction · 0.85

Calls 3

vdev_readableFunction · 0.85
vdev_label_readFunction · 0.85
abd_alloc_linearFunction · 0.85

Tested by

no test coverage detected