]> granicus.if.org Git - zfs/commitdiff
Use linear abd in vdev_copy_uberblocks()
authorIsaac Huang <he.huang@intel.com>
Fri, 6 Oct 2017 02:30:02 +0000 (20:30 -0600)
committerBrian Behlendorf <behlendorf1@llnl.gov>
Fri, 6 Oct 2017 02:30:02 +0000 (19:30 -0700)
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 <mail@gmelikov.ru>
Reviewed-by: Giuseppe Di Natale <dinatale2@llnl.gov>
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Isaac Huang <he.huang@intel.com>
Closes #6718
Closes #6713

module/zfs/vdev_label.c

index f7a9942554b5987c5af842610ae7b6cf6aca57dc..8192431f9e1ab61ab6fbec3ab632a231958b18bc 100644 (file)
@@ -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++) {