STRUCT BLK_ZONE_REPORT(9)
β¨ struct blk_zone_report(9) β¨
okay so bestie, we're in the Kernel API Manual today and this is genuinely one of those pages you're gonna be glad you read π
πΈ NAME πΈ
struct blk_zone_report β the BLKREPORTZONE ioctl request and reply, like one little struct doing double duty π«Ά
π¦ SYNOPSIS π¦
struct blk_zone_report {
__u64 sector;
__u32 nr_zones;
__u32 flags;
struct blk_zone zones[];
};
look at her. iconic. no notes β¨
π Members π
sectorβ the starting sector of the report. that's where the story begins, periodt πnr_zonesβ IN it's the maximum, OUT it's the actual. yes she switches it up depending on which way the data's flowing, main character energy fr π«flagsβ one or more flags, as defined byenum blk_zone_report_flags. now listen closely because this part matters: withBLKREPORTZONE, this field is ignored as an input and is valid only as an output. but withBLKREPORTZONEV2, this field is used as both input and output. two different vibes, same field, iykyk πzonesβ space to holdnr_zoneszones entries on reply. it's literally the whole point, she's holding the payload π
π Description π
the array of at most nr_zones must follow this structure in memory. not "should", not "ideally", must β that's the layout, don't fight it π
β SEE ALSO β
- Kernel file
./include/uapi/linux/blkzoned.hβ that's where she lives π enum blk_zone_type(9)enum blk_zone_cond(9)enum blk_zone_report_flags(9)struct blk_zone(9)struct blk_zone_range(9)
the whole friend group fr, go read them too π
ngl the structure layout is not a suggestion bestie, respect the memory order or the kernel will simply Not Be Having It π
okay that's the page!! this one came from ./include/uapi/linux, dated October 2026 β mwah, love that for us, catch you in the next manpage ππ§
π¦ where this page comes from
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms