From 8b5814393f43d7eb7e4319120529d957a5f7bf8e Mon Sep 17 00:00:00 2001 From: Tim Chase Date: Mon, 26 Feb 2018 16:20:12 -0600 Subject: [PATCH] Incorrect maximum DVA value in DDE_GET_NDVAS() The conditional was reversed which caused garbage values to be used when calculating dds_ref_dsize. Reviewed-by: Brian Behlendorf Reviewed-by: Tom Caputi Reviewed by: Matthew Ahrens Signed-off-by: Tim Chase Closes #7234 --- include/sys/ddt.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/sys/ddt.h b/include/sys/ddt.h index fc40a495a..fb1445d8d 100644 --- a/include/sys/ddt.h +++ b/include/sys/ddt.h @@ -95,7 +95,7 @@ typedef struct ddt_key { #define DDT_KEY_WORDS (sizeof (ddt_key_t) / sizeof (uint64_t)) #define DDE_GET_NDVAS(dde) (DDK_GET_CRYPT(&dde->dde_key) \ - ? SPA_DVAS_PER_BP : SPA_DVAS_PER_BP - 1) + ? SPA_DVAS_PER_BP - 1 : SPA_DVAS_PER_BP) typedef struct ddt_phys { dva_t ddp_dva[SPA_DVAS_PER_BP];