ddt: simplify entry load and flags

Only a single bit is needed to track entry state, and definitely not two
whole bytes. Some light refactoring in ddt_lookup() is needed to support
this, but it reads a lot better now.

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:
Rob Norris
2023-12-05 14:28:39 +11:00
committed by Brian Behlendorf
parent 2cffddd405
commit 406562c563
2 changed files with 33 additions and 21 deletions
+5 -2
View File
@@ -117,6 +117,10 @@ enum ddt_phys_type {
/*
* In-core ddt entry
*/
/* State flags for dde_flags */
#define DDE_FLAG_LOADED (1 << 0) /* entry ready for use */
typedef struct {
/* key must be first for ddt_key_compare */
ddt_key_t dde_key;
@@ -125,8 +129,7 @@ typedef struct {
struct abd *dde_repair_abd;
ddt_type_t dde_type;
ddt_class_t dde_class;
uint8_t dde_loading;
uint8_t dde_loaded;
uint8_t dde_flags;
kcondvar_t dde_cv;
avl_node_t dde_node;
} ddt_entry_t;