cephfs: Fix cephfs PVC sizing

Issue:
The RoundOffCephFSVolSize() function omits the fractional
part when calculating the size for cephfs volumes, leading
to the created volume capacity to be lesser than the requested
volume capacity.

Fix:
Consider the fractional part during the size calculation so the
rounded off volume size will be greater than or equal to the
requested volume size.

Signed-off-by: karthik-us <ksubrahm@redhat.com>
Fixes: #4179
This commit is contained in:
karthik-us 2023-10-10 16:39:37 +05:30 committed by mergify[bot]
parent e79b963644
commit 5a0eeb882e
2 changed files with 12 additions and 2 deletions

View File

@ -67,9 +67,9 @@ func RoundOffCephFSVolSize(bytes int64) int64 {
return 4 * helpers.MiB return 4 * helpers.MiB
} }
bytes /= helpers.MiB floatbytes := float64(bytes) / helpers.MiB
bytes = int64(math.Ceil(float64(bytes)/4) * 4) bytes = int64(math.Ceil(floatbytes/4) * 4)
return RoundOffBytes(bytes * helpers.MiB) return RoundOffBytes(bytes * helpers.MiB)
} }

View File

@ -375,6 +375,16 @@ func TestRoundOffCephFSVolSize(t *testing.T) {
1677722, 1677722,
4194304, // 4 MiB 4194304, // 4 MiB
}, },
{
"101MB conversion",
101000000,
104857600, // 100MiB
},
{
"500MB conversion",
500000000,
503316480, // 480MiB
},
{ {
"1023MiB conversion", "1023MiB conversion",
1072693248, 1072693248,