+4
−2
Loading
the calculation (offset_blocks + num_blocks - 1) didn't check if num_blocks is 0 which it is in case of flush. in flush case, offset_blocks was also 0, so we got (-1) and we got big unsigned number. just replace it with (offset_blocks + num_blocks - (num_blocks > 0)) to solve the issue. NOTE this is only fixing the wrong math, there might be more issues that outside the scope of this commit for example, if flush(x, y) called, no bdev implementation really use those values, and all bdevs just flush the whole disk also, a convention is that fluch(0, 0) should flush it all (but like I said before, all bdevs flush the whole disk anyway) Change-Id: I7e991653bc3050349dc155365b2c37ecc2d6b24c Signed-off-by:Amir Haroush <amir.haroush@huawei.com> Signed-off-by:
Shai Fultheim <shai.fultheim@huawei.com> Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/13579 Community-CI: Mellanox Build Bot Tested-by:
SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by:
Shuhei Matsumoto <smatsumoto@nvidia.com> Reviewed-by:
Jim Harris <james.r.harris@intel.com>