ddt: remove DDE_GET_NDVAS macro
It was a weird and confusing name, because it wasn't actually returning the number of DVAs in the entry (as in, in the value/phys part) but the maximum number of possible DVAs in a BP generated from the entry, based on the encrypt bit in the key. This is unlike the similarly named BP_GET_NDVAS, which really does return the number of DVAs. Since its only used in this one place, and for a specific purpose, it seemed more sensible to just write it in-place and remove the name. Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov> Signed-off-by: Rob Norris <rob.norris@klarasystems.com> Sponsored-by: Klara, Inc. Sponsored-by: iXsystems, Inc. Closes #15887
This commit is contained in:
parent
5973854153
commit
909006049f
|
@ -89,9 +89,6 @@ typedef struct ddt_key {
|
|||
#define DDK_GET_CRYPT(ddk) BF64_GET((ddk)->ddk_prop, 39, 1)
|
||||
#define DDK_SET_CRYPT(ddk, x) BF64_SET((ddk)->ddk_prop, 39, 1, x)
|
||||
|
||||
#define DDE_GET_NDVAS(dde) (DDK_GET_CRYPT(&dde->dde_key) \
|
||||
? SPA_DVAS_PER_BP - 1 : SPA_DVAS_PER_BP)
|
||||
|
||||
typedef struct ddt_phys {
|
||||
dva_t ddp_dva[SPA_DVAS_PER_BP];
|
||||
uint64_t ddp_refcnt;
|
||||
|
|
|
@ -49,7 +49,9 @@ ddt_stat_generate(ddt_t *ddt, ddt_entry_t *dde, ddt_stat_t *dds)
|
|||
if (ddp->ddp_phys_birth == 0)
|
||||
continue;
|
||||
|
||||
for (int d = 0; d < DDE_GET_NDVAS(dde); d++)
|
||||
int ndvas = DDK_GET_CRYPT(&dde->dde_key) ?
|
||||
SPA_DVAS_PER_BP - 1 : SPA_DVAS_PER_BP;
|
||||
for (int d = 0; d < ndvas; d++)
|
||||
dsize += dva_get_dsize_sync(spa, &ddp->ddp_dva[d]);
|
||||
|
||||
dds->dds_blocks += 1;
|
||||
|
|
Loading…
Reference in New Issue