Skip to content

Commit bd017ce

Browse files
committed
btrfs-progs: sb-mod: add remaining dev_item members
Add helpers and all remaining members of the device item embedded in the superblock. No UUID types. Reviewed-by: Anand Jain <anand.jain@oracle.com> Signed-off-by: David Sterba <dsterba@suse.com>
1 parent 8de6816 commit bd017ce

File tree

1 file changed

+31
-0
lines changed

1 file changed

+31
-0
lines changed

btrfs-sb-mod.c

+31
Original file line numberDiff line numberDiff line change
@@ -141,6 +141,17 @@ struct sb_field {
141141
{ .name = "uuid_tree_generation", .type = TYPE_U64 },
142142
/* Device item members */
143143
{ .name = "dev_item.devid", .type = TYPE_U64 },
144+
{ .name = "dev_item.total_bytes", .type = TYPE_U64 },
145+
{ .name = "dev_item.bytes_used", .type = TYPE_U64 },
146+
{ .name = "dev_item.io_align", .type = TYPE_U32 },
147+
{ .name = "dev_item.io_width", .type = TYPE_U32 },
148+
{ .name = "dev_item.sector_size", .type = TYPE_U32 },
149+
{ .name = "dev_item.type", .type = TYPE_U64 },
150+
{ .name = "dev_item.generation", .type = TYPE_U64 },
151+
{ .name = "dev_item.start_offset", .type = TYPE_U64 },
152+
{ .name = "dev_item.dev_group", .type = TYPE_U32 },
153+
{ .name = "dev_item.seek_speed", .type = TYPE_U8 },
154+
{ .name = "dev_item.bandwidth", .type = TYPE_U8 },
144155
};
145156

146157
#define MOD_FIELD_XX(fname, set, val, bits, f_dec, f_hex, f_type) \
@@ -191,6 +202,15 @@ struct sb_field {
191202
#define MOD_FIELD8(fname, set, val) \
192203
MOD_FIELD_XX(fname, set, val, 8, "%hhu", "%hhx", unsigned char)
193204

205+
#define MOD_DEV_FIELD32(fname, set, val) \
206+
MOD_DEV_FIELD_XX(fname, set, val, 32, "%u", "%x", unsigned int)
207+
208+
#define MOD_DEV_FIELD16(fname, set, val) \
209+
MOD_DEV_FIELD_XX(fname, set, val, 16, "%hu", "%hx", unsigned short int)
210+
211+
#define MOD_DEV_FIELD8(fname, set, val) \
212+
MOD_DEV_FIELD_XX(fname, set, val, 8, "%hhu", "%hhx", unsigned char)
213+
194214
static void mod_field_by_name(struct btrfs_super_block *sb, int set, const char *name,
195215
u64 *val)
196216
{
@@ -222,6 +242,17 @@ static void mod_field_by_name(struct btrfs_super_block *sb, int set, const char
222242
MOD_FIELD(cache_generation, set, val)
223243
MOD_FIELD(uuid_tree_generation, set, val)
224244
MOD_DEV_FIELD(devid, set, val)
245+
MOD_DEV_FIELD(total_bytes, set, val)
246+
MOD_DEV_FIELD(bytes_used, set, val)
247+
MOD_DEV_FIELD32(io_align, set, val)
248+
MOD_DEV_FIELD32(io_width, set, val)
249+
MOD_DEV_FIELD32(sector_size, set, val)
250+
MOD_DEV_FIELD(type, set, val)
251+
MOD_DEV_FIELD(generation, set, val)
252+
MOD_DEV_FIELD(start_offset, set, val)
253+
MOD_DEV_FIELD32(dev_group, set, val)
254+
MOD_DEV_FIELD8(seek_speed, set, val)
255+
MOD_DEV_FIELD8(bandwidth, set, val)
225256
else {
226257
printf("ERROR: unhandled field: %s\n", name);
227258
exit(1);

0 commit comments

Comments
 (0)