#include "utils.h"
#include "commands.h"
#include "crc32c.h"
-#include "cmds-inspect-dump-super.h"
#include "help.h"
static int check_csum_sblock(void *sb, int csum_size)
return;
}
write_extent_buffer(buf, sb, 0, sizeof(*sb));
+ buf->len = sizeof(*sb);
array_size = btrfs_super_sys_array_size(sb);
array_ptr = sb->sys_chunk_array;
len = btrfs_chunk_item_size(num_stripes);
if (cur_offset + len > array_size)
goto out_short_read;
- print_chunk(buf, chunk);
+ print_chunk_item(buf, chunk);
} else {
error("unexpected item type %u in sys_array at offset %u",
(u32)key.type, cur_offset);
DEF_INCOMPAT_FLAG_ENTRY(DEFAULT_SUBVOL),
DEF_INCOMPAT_FLAG_ENTRY(MIXED_GROUPS),
DEF_INCOMPAT_FLAG_ENTRY(COMPRESS_LZO),
- DEF_INCOMPAT_FLAG_ENTRY(COMPRESS_LZOv2),
+ DEF_INCOMPAT_FLAG_ENTRY(COMPRESS_ZSTD),
DEF_INCOMPAT_FLAG_ENTRY(BIG_METADATA),
DEF_INCOMPAT_FLAG_ENTRY(EXTENDED_IREF),
DEF_INCOMPAT_FLAG_ENTRY(RAID56),
(unsigned long long)btrfs_super_sectorsize(sb));
printf("nodesize\t\t%llu\n",
(unsigned long long)btrfs_super_nodesize(sb));
- printf("leafsize\t\t%llu\n",
- (unsigned long long)btrfs_super_leafsize(sb));
+ printf("leafsize (deprecated)\t\t%u\n",
+ le32_to_cpu(sb->__unused_leafsize));
printf("stripesize\t\t%llu\n",
(unsigned long long)btrfs_super_stripesize(sb));
printf("root_dir\t\t%llu\n",
while (1) {
int c;
+ enum { GETOPT_VAL_BYTENR = 257 };
static const struct option long_options[] = {
{"all", no_argument, NULL, 'a'},
+ {"bytenr", required_argument, NULL, GETOPT_VAL_BYTENR },
{"full", no_argument, NULL, 'f'},
{"force", no_argument, NULL, 'F'},
{"super", required_argument, NULL, 's' },
}
all = 0;
break;
+ case GETOPT_VAL_BYTENR:
+ arg = arg_strtou64(optarg);
+ sb_bytenr = arg;
+ all = 0;
+ break;
default:
usage(cmd_inspect_dump_super_usage);
}