The branch main has been updated by markj:

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

commit 3115538908e9344f4c881d5f6d5182e16bcd4e7b
Author:     Mark Johnston <[email protected]>
AuthorDate: 2023-10-23 15:05:50 +0000
Commit:     Mark Johnston <[email protected]>
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;

Reply via email to