Kernel: Fix Ext2 bug for big files
My ext2 implementation was reading wrong blocks for very big block indices.
This commit is contained in:
parent
9258c73484
commit
703c1a485c
|
@ -64,7 +64,9 @@ namespace Kernel
|
||||||
|
|
||||||
const uint32_t indices_per_block = blksize() / sizeof(uint32_t);
|
const uint32_t indices_per_block = blksize() / sizeof(uint32_t);
|
||||||
|
|
||||||
const uint32_t divisor = (depth > 1) ? indices_per_block * (depth - 1) : 1;
|
uint32_t divisor = 1;
|
||||||
|
for (uint32_t i = 1; i < depth; i++)
|
||||||
|
divisor *= indices_per_block;
|
||||||
|
|
||||||
const uint32_t next_block = block_buffer.span().as_span<uint32_t>()[(index / divisor) % indices_per_block];
|
const uint32_t next_block = block_buffer.span().as_span<uint32_t>()[(index / divisor) % indices_per_block];
|
||||||
if (next_block == 0)
|
if (next_block == 0)
|
||||||
|
|
Loading…
Reference in New Issue