void ext4_bmap_bits_free(uint8_t *bmap, uint32_t sbit, uint32_t bcnt)
{
- uint32_t i;
-
- i = sbit;
+ uint32_t i = sbit;
while(i & 7){
bcnt--;
i++;
}
-
sbit = i;
bmap += (sbit >> 3);
-
-
while(bcnt >= 32){
*(uint32_t *)bmap = 0;
-
bmap += 4;
bcnt -= 32;
sbit += 32;
while(bcnt >= 16){
*(uint16_t *)bmap = 0;
-
bmap += 2;
bcnt -= 16;
sbit += 16;
while(bcnt >= 8){
*bmap = 0;
-
bmap += 1;
bcnt -= 8;
sbit += 8;
if(*(uint32_t *)bmap != 0xFFFFFFFF)
goto finish_it;
-
bmap += 4;
bcnt -= 32;
sbit += 32;
if(*(uint16_t *)bmap != 0xFFFF)
goto finish_it;
-
bmap += 2;
bcnt -= 16;
sbit += 16;
}
}
-
return ENOSPC;
}