bcache-tools: set zoned size aligned data_offset on backing device for zoned devive
If the backing device is a zoned device, e.g. host managed SMR hard
drive, the data_offset of the backing device should be set to a zone
size aligned value, this is necessary for the zoned device I/O LBA
and length requirement.
This patch set the data_offset for zoned backing device by following
rules,
- If no manually inputed data_offset specified, set it to default
value:
- If BDEV_DATA_START_DEFAULT >= zone size and aligned to zone size,
keep data_offset as BDEV_DATA_START_DEFAULT.
- If BDEV_DATA_START_DEFAULT < zone size, set data_offset to zone
size.
- If data_offset is manually set, it must be a non-zero value aligned
to zone size. Of cause it can be multiple zones size, but must be
aligned to zone size.
This patch also creates a new zone.c and zone.h and places all the
above zoned device related code there.
Signed-off-by: Coly Li <colyli@suse.de>
4 files changed