git: 3115538908e9 - main - boot/zfs: Add some fields to dsl_dir_phys_t

From: Mark Johnston <markj_at_FreeBSD.org>
Date: Mon, 23 Oct 2023 15:17:58 UTC
The branch main has been updated by markj:

URL: https://cgit.FreeBSD.org/src/commit/?id=3115538908e9344f4c881d5f6d5182e16bcd4e7b

commit 3115538908e9344f4c881d5f6d5182e16bcd4e7b
Author:     Mark Johnston <markj@FreeBSD.org>
AuthorDate: 2023-10-23 15:05:50 +0000
Commit:     Mark Johnston <markj@FreeBSD.org>
CommitDate: 2023-10-23 15:12:14 +0000

    boot/zfs: Add some fields to dsl_dir_phys_t
    
    Most of the first block of pad bytes are now used for space accounting
    purposes.  No functional change intended.
    
    MFC after:      1 week
    Sponsored by:   The FreeBSD Foundation
---
 sys/cddl/boot/zfs/zfsimpl.h | 15 ++++++++++++++-
 1 file changed, 14 insertions(+), 1 deletion(-)

diff --git a/sys/cddl/boot/zfs/zfsimpl.h b/sys/cddl/boot/zfs/zfsimpl.h
index 843565607a49..fcaf407bcb75 100644
--- a/sys/cddl/boot/zfs/zfsimpl.h
+++ b/sys/cddl/boot/zfs/zfsimpl.h
@@ -1406,6 +1406,17 @@ typedef enum {
 #define	SM2_RUN_MAX		SM2_RUN_DECODE(~0ULL)
 #define	SM2_OFFSET_MAX		SM2_OFFSET_DECODE(~0ULL)
 
+typedef enum dd_used {
+	DD_USED_HEAD,
+	DD_USED_SNAP,
+	DD_USED_CHILD,
+	DD_USED_CHILD_RSRV,
+	DD_USED_REFRSRV,
+	DD_USED_NUM
+} dd_used_t;
+
+#define	DD_FLAG_USED_BREAKDOWN (1 << 0)
+
 typedef struct dsl_dir_phys {
 	uint64_t dd_creation_time; /* not actually used */
 	uint64_t dd_head_dataset_obj;
@@ -1424,7 +1435,9 @@ typedef struct dsl_dir_phys {
 	/* Administrative reservation setting */
 	uint64_t dd_reserved;
 	uint64_t dd_props_zapobj;
-	uint64_t dd_pad[7];
+	uint64_t dd_pad[1];
+	uint64_t dd_flags;
+	uint64_t dd_used_breakdown[DD_USED_NUM];
 	uint64_t dd_clones;
 	uint64_t dd_pad1[13]; /* pad out to 256 bytes for good measure */
 } dsl_dir_phys_t;