From b97948276d86343e3f4a9aa1232af9e02106ceeb Mon Sep 17 00:00:00 2001 From: Isaac Huang Date: Thu, 5 Oct 2017 20:30:02 -0600 Subject: [PATCH] Use linear abd in vdev_copy_uberblocks() The vdev_copy_uberblocks() function should use abd_alloc_linear() to allocate ub_abd, because abd_to_buf(ub_abd)) is used later. Reviewed-by: George Melikov Reviewed-by: Giuseppe Di Natale Reviewed-by: Brian Behlendorf Signed-off-by: Isaac Huang Closes #6718 Closes #6713 --- module/zfs/vdev_label.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/module/zfs/vdev_label.c b/module/zfs/vdev_label.c index a0a02366e1..27e79ae60e 100644 --- a/module/zfs/vdev_label.c +++ b/module/zfs/vdev_label.c @@ -1164,7 +1164,7 @@ vdev_copy_uberblocks(vdev_t *vd) spa_config_enter(vd->vdev_spa, locks, FTAG, RW_READER); - ub_abd = abd_alloc(VDEV_UBERBLOCK_SIZE(vd), B_TRUE); + ub_abd = abd_alloc_linear(VDEV_UBERBLOCK_SIZE(vd), B_TRUE); write_zio = zio_root(vd->vdev_spa, NULL, NULL, flags); for (int n = 0; n < VDEV_UBERBLOCK_COUNT(vd); n++) {