mirror of
https://github.com/versity/scoutfs.git
synced 2026-01-08 13:01:23 +00:00
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:
@@ -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
|
||||
|
||||
@@ -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,
|
||||
};
|
||||
|
||||
@@ -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] =
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user