Commit b08337c2 authored by Wojciech Malikowski's avatar Wojciech Malikowski Committed by Jim Harris
Browse files

lib/ftl: Fix padding size calculation



Padding size calculation should take into account
already acquired write buffer entries in case
number of blocks left for closing band is less than
write buffer size.

Change-Id: I0f9c9bc94eb5a4736eede30ec424c81103e1256f
Signed-off-by: default avatarWojciech Malikowski <wojciech.malikowski@intel.com>
Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/463525


Reviewed-by: default avatarPaul Luse <paul.e.luse@intel.com>
Reviewed-by: default avatarKonrad Sztyber <konrad.sztyber@intel.com>
Reviewed-by: default avatarBen Walker <benjamin.walker@intel.com>
Reviewed-by: default avatarJim Harris <james.r.harris@intel.com>
Tested-by: default avatarSPDK CI Jenkins <sys_sgci@intel.com>
parent 7a260a5e
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -775,8 +775,10 @@ ftl_wptr_pad_band(struct ftl_wptr *wptr)
	size_t blocks_left, rwb_size, pad_size;

	blocks_left = ftl_wptr_user_lbks_left(wptr);
	assert(size <= blocks_left);
	assert(blocks_left % dev->xfer_size == 0);
	rwb_size = ftl_rwb_size(dev->rwb) - size;
	pad_size = spdk_min(blocks_left, rwb_size);
	pad_size = spdk_min(blocks_left - size, rwb_size);

	/* Pad write buffer until band is full */
	ftl_rwb_pad(dev, pad_size);