From f368686b89005b4f5c186e5bb0b3ea06861effe4 Mon Sep 17 00:00:00 2001 From: Zach Brown Date: Tue, 3 Jul 2018 11:54:35 -0700 Subject: [PATCH] scoutfs-utils: add net free extents Signed-off-by: Zach Brown --- utils/src/format.h | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/utils/src/format.h b/utils/src/format.h index 9addabf5..e1dfc9a2 100644 --- a/utils/src/format.h +++ b/utils/src/format.h @@ -562,6 +562,20 @@ struct scoutfs_net_extent { __le64 len; } __packed; +struct scoutfs_net_extent_list { + __le64 nr; + struct { + __le64 start; + __le64 len; + } __packed extents[0]; +} __packed; + +#define SCOUTFS_NET_EXTENT_LIST_BYTES(nr) \ + offsetof(struct scoutfs_net_extent_list, extents[nr]) + +/* arbitrarily makes a nice ~1k extent list payload */ +#define SCOUTFS_NET_EXTENT_LIST_MAX_NR 64 + /* XXX eventually we'll have net compaction and will need agents to agree */ /* one upper segment and fanout lower segments */ @@ -575,6 +589,7 @@ struct scoutfs_net_extent { enum { SCOUTFS_NET_ALLOC_INODES = 0, SCOUTFS_NET_ALLOC_EXTENT, + SCOUTFS_NET_FREE_EXTENTS, SCOUTFS_NET_ALLOC_SEGNO, SCOUTFS_NET_RECORD_SEGMENT, SCOUTFS_NET_ADVANCE_SEQ,