scoutfs-utils: remove size inode index items

With the removal of the size index items we no longer have to print them
or be able to walk the index.  mkfs only needs to create a meta seq
index item for the root inode.

Signed-off-by: Zach Brown <zab@versity.com>
This commit is contained in:
Zach Brown
2018-01-29 10:45:17 -08:00
committed by Mark Fasheh
parent 7c30294e1b
commit 7d674fa4bf
6 changed files with 22 additions and 34 deletions

View File

@@ -237,10 +237,9 @@ struct scoutfs_segment_block {
#define SCOUTFS_MAX_ZONE 4 /* power of 2 is efficient */
/* inode index zone */
#define SCOUTFS_INODE_INDEX_SIZE_TYPE 1
#define SCOUTFS_INODE_INDEX_META_SEQ_TYPE 2
#define SCOUTFS_INODE_INDEX_DATA_SEQ_TYPE 3
#define SCOUTFS_INODE_INDEX_NR 4 /* don't forget to update */
#define SCOUTFS_INODE_INDEX_META_SEQ_TYPE 1
#define SCOUTFS_INODE_INDEX_DATA_SEQ_TYPE 2
#define SCOUTFS_INODE_INDEX_NR 3 /* don't forget to update */
/* node zone */
#define SCOUTFS_FREE_BITS_SEGNO_TYPE 1

View File

@@ -51,8 +51,7 @@ struct scoutfs_ioctl_walk_inodes {
} __packed;
enum {
SCOUTFS_IOC_WALK_INODES_SIZE = 0,
SCOUTFS_IOC_WALK_INODES_META_SEQ,
SCOUTFS_IOC_WALK_INODES_META_SEQ = 0,
SCOUTFS_IOC_WALK_INODES_DATA_SEQ,
SCOUTFS_IOC_WALK_INODES_UNKNOWN,
};

View File

@@ -184,7 +184,6 @@ typedef int (*key_printer_t)(char *buf, struct scoutfs_key_buf *key,
static int pr_ino_idx(char *buf, struct scoutfs_key_buf *key, size_t size)
{
static char *type_strings[] = {
[SCOUTFS_INODE_INDEX_SIZE_TYPE] = "siz",
[SCOUTFS_INODE_INDEX_META_SEQ_TYPE] = "msq",
[SCOUTFS_INODE_INDEX_DATA_SEQ_TYPE] = "dsq",
};
@@ -302,8 +301,6 @@ static int pr_block_mapping(char *buf, struct scoutfs_key_buf *key, size_t size)
}
const static key_printer_t key_printers[SCOUTFS_MAX_ZONE][SCOUTFS_MAX_TYPE] = {
[SCOUTFS_INODE_INDEX_ZONE][SCOUTFS_INODE_INDEX_SIZE_TYPE] =
pr_ino_idx,
[SCOUTFS_INODE_INDEX_ZONE][SCOUTFS_INODE_INDEX_META_SEQ_TYPE] =
pr_ino_idx,
[SCOUTFS_INODE_INDEX_ZONE][SCOUTFS_INODE_INDEX_DATA_SEQ_TYPE] =

View File

@@ -261,7 +261,7 @@ static int write_new_fs(char *path, int fd)
mkey->level = 1;
idx_key->zone = SCOUTFS_INODE_INDEX_ZONE;
idx_key->type = SCOUTFS_INODE_INDEX_SIZE_TYPE;
idx_key->type = SCOUTFS_INODE_INDEX_META_SEQ_TYPE;
idx_key->major = 0;
idx_key->minor = 0;
idx_key->ino = cpu_to_be64(SCOUTFS_ROOT_INO);
@@ -294,26 +294,21 @@ static int write_new_fs(char *path, int fd)
*prev_link = cpu_to_le32((long)item -(long)sblk);
prev_link = &item->skip_links[0];
/* write the root inode index keys */
for (i = SCOUTFS_INODE_INDEX_SIZE_TYPE;
i <= SCOUTFS_INODE_INDEX_META_SEQ_TYPE; i++) {
item->key_len = cpu_to_le16(sizeof(*idx_key));
item->val_len = 0;
item->nr_links = 1;
le32_add_cpu(&sblk->nr_items, 1);
item->key_len = cpu_to_le16(sizeof(*idx_key));
item->val_len = 0;
item->nr_links = 1;
le32_add_cpu(&sblk->nr_items, 1);
idx_key = (void *)&item->skip_links[1];
idx_key->zone = SCOUTFS_INODE_INDEX_ZONE;
idx_key->type = SCOUTFS_INODE_INDEX_META_SEQ_TYPE;
idx_key->ino = cpu_to_be64(SCOUTFS_ROOT_INO);
idx_key->major = 0;
idx_key->minor = 0;
idx_key = (void *)&item->skip_links[1];
idx_key->zone = SCOUTFS_INODE_INDEX_ZONE;
idx_key->type = i;
idx_key->ino = cpu_to_be64(SCOUTFS_ROOT_INO);
idx_key->major = 0;
idx_key->minor = 0;
item = (void *)(idx_key + 1);
*prev_link = cpu_to_le32((long)item -(long)sblk);
prev_link = &item->skip_links[0];
}
item = (void *)(idx_key + 1);
*prev_link = cpu_to_le32((long)item -(long)sblk);
prev_link = &item->skip_links[0];
sblk->last_item_off = cpu_to_le32((long)item - (long)sblk);

View File

@@ -232,7 +232,7 @@ typedef void (*print_func_t)(void *key, int key_len, void *val, int val_len);
static print_func_t find_printer(u8 zone, u8 type)
{
if (zone == SCOUTFS_INODE_INDEX_ZONE &&
type >= SCOUTFS_INODE_INDEX_SIZE_TYPE &&
type >= SCOUTFS_INODE_INDEX_META_SEQ_TYPE &&
type <= SCOUTFS_INODE_INDEX_DATA_SEQ_TYPE)
return print_inode_index;

View File

@@ -80,15 +80,13 @@ static int walk_inodes_cmd(int argc, char **argv)
return -EINVAL;
}
if (!strcasecmp(argv[1], "size"))
walk.index = SCOUTFS_IOC_WALK_INODES_SIZE;
else if (!strcasecmp(argv[1], "meta_seq"))
if (!strcasecmp(argv[1], "meta_seq"))
walk.index = SCOUTFS_IOC_WALK_INODES_META_SEQ;
else if (!strcasecmp(argv[1], "data_seq"))
walk.index = SCOUTFS_IOC_WALK_INODES_DATA_SEQ;
else {
fprintf(stderr, "unknown index '%s', try 'size', 'ctime, or "
"mtime'\n", argv[1]);
fprintf(stderr, "unknown index '%s', try 'meta_seq' or "
"'data_seq'\n", argv[1]);
return -EINVAL;
}