diff --git a/utils/src/format.h b/utils/src/format.h index f2480fc3..2ba9cbd8 100644 --- a/utils/src/format.h +++ b/utils/src/format.h @@ -238,6 +238,7 @@ struct scoutfs_key { #define SCOUTFS_SYMLINK_KEY 8 #define SCOUTFS_EXTENT_KEY 9 #define SCOUTFS_ORPHAN_KEY 10 +#define SCOUTFS_DATA_KEY 11 #define SCOUTFS_MAX_UNUSED_KEY 255 #define SCOUTFS_MAX_ITEM_LEN 512 @@ -268,6 +269,13 @@ struct scoutfs_orphan_key { __be64 ino; } __packed; +/* value is data payload bytes */ +struct scoutfs_data_key { + __u8 type; + __be64 ino; + __be64 block; +} __packed; + struct scoutfs_btree_root { u8 height; struct scoutfs_block_ref ref; diff --git a/utils/src/print.c b/utils/src/print.c index 30749431..9f486ccc 100644 --- a/utils/src/print.c +++ b/utils/src/print.c @@ -171,6 +171,14 @@ static void print_readdir(void *key, int key_len, void *val, int val_len) name); } +static void print_data(void *key, int key_len, void *val, int val_len) +{ + struct scoutfs_data_key *dat = key; + + printf(" data: ino %llu block %llu\n", + be64_to_cpu(dat->ino), be64_to_cpu(dat->block)); +} + #if 0 static void print_link_backref(struct scoutfs_link_backref *lref, unsigned int val_len) @@ -205,6 +213,7 @@ static print_func_t printers[] = { [SCOUTFS_ORPHAN_KEY] = print_orphan, [SCOUTFS_DIRENT_KEY] = print_dirent, [SCOUTFS_READDIR_KEY] = print_readdir, + [SCOUTFS_DATA_KEY] = print_data, }; /* utils uses big contiguous allocations */