Releases: westerndigitalcorporation/libzbc
Version 5.1.1
This is a minor version release. Changes from version 5.1.0 are as follows:
- Fix gzbc window size handling to avoid window size warnings on some systems
- Fix SAT detection and disable it when in test mode to allow for SATA/ZAC native device tests
- Better handling of SG maximum transfer length to avoid buffer handling problems with some HBAs
- Remove unused set_zone and set_wp operations from SCSI backend driver.
Version 5.1.0
This version introduces block backend driver improvements, some code cleanup and ZBC/ZAC SAT automatic detection. In details, the changes from v5.0.1 are as follows:
- Fixed error and debug messages to make sure that whenever possible, messages are prefixed with the device path
- Improved reset zone in the block backend driver (issue the zone reset ioctl over a range of multiple zones instead of per zone)
- For ATA devices, automatically detect if ZBC/ZAC command translation (SAT) is supported. If it is, handle ATA devices as SCSI devices. This can improve performance depending if the SAT implementation supports translation of SCSI commands to SATA NCQ (queued) commands.
Version 5.0.1
This version introduces some minor bug fixes and improvements:
- Fixed a problem with zone report when using a block device file (with a kernel supporting zoned block devices)
- Execute SG_IO ioctl command requesting queueing of the command at the device queue tail to improve request execution fairness with multi-thread or multi-process applications.
Version 5.0.0
This major version release is a rewrite of libzbc introducing significant changes to the API and drops support for draft standards 4.x. Among other changes, compliance to the final ZBC/ZAC standards is improved and functions usage simplified (in particular read/write operations).
In more details, the main changes from v4.x are as follows.
- Code refactoring and cleanup (coding style, etc)
- All functions now operate using 512B sector units, regardless of the device actual logical block size. This is inline with Linux block device management and can simplify application implementation by unifying the addressing unit used when devices with different logical block sizes (512B or 4096B) are being used. Applications must however still comply with write request alignment to the device physical block size, which may be different from the 512B sector size unit used.
- Improved support for kernel 4.10 zoned block device interface. In particular handling of partitioned zoned block devices was improved and many bugs fixed.
- Improved read and write functions (zbc_pread and zbc_pwrite) to not limit the request size to the device maximum request data transfer size (calls are internally split into multiple requests)
- Improved test suite with many fixes to ensure compliance of a device to the latest ZBC/ZAC r05 standards.
The changes to libzbc v5.0.0 API makes it incompatible with previous versions 4.x. Applications must be modified to switch to this new version.
Version 4.3.4
Changes from v4.3.3:
- Fixed bugs in the fake backend driver (device handle mutex not released before function return)
- Fixed bug block backend driver (invalid fclose call)
- Properly handle partition block devices with the block backend driver
- Fixed tests program compilation to allow execution in-place
Version 4.3.3
Changes from v4.3.2:
- Fixed the test framework to enable the concurrent test of multiple devices
Version 4.3.2
Fix a compilation problem for system without the kernel provided user API (ioctl) definitions for zoned block device management.
Version 4.3.1
This release adds support for the official kernel ZBC interface to be released with kernel 4.10.
Changes from v4.3.0:
- Fixed block backend driver
- Various cleanups
Version 4.3.0
This release implements support for ZBC and ZAC revision 4 and above draft standards (latest standards in public review).
Changes from v4.2.0:
- Fixed problems with the automatic detection of the maximum single request data transfer size
- Code cleanup
Version 4.2.0
This release implements support for ZBC and ZAC revision 4 and above draft standards (latest standards in public review).
Changes from v4.1.1:
- Added the field zbd_max_rw_logical_blocks to the zbc_device_info structure
- Automatic detection of the maximum single request data transfer size (zbd_max_rw_logical_blocks)
- Support for O_DIRECT accesses on block devices with zbc_read_zone and zbc_write zone
- various fixes and improvements to gzbc