366,13 → 366,13 |
jc .fail |
pop eax |
push ecx ebx edx |
add [ebp+EXTFS.superblock.blocksFree], ecx |
mov edi, eax |
shr edi, 5 |
shl edi, 2 |
add edi, ebx |
and eax, 31 |
mov edx, ecx |
and eax, 31 |
jz .aligned |
mov ecx, 32 |
sub ecx, eax |
sub edx, ecx |
387,15 → 387,15 |
shl ebx, cl |
not ebx |
and [edi], ebx |
mov ecx, edx |
jecxz @f |
shr ecx, 5 |
add edi, 4 |
xor eax, eax |
.aligned: |
mov ecx, edx |
shr ecx, 5 |
rep stosd |
and edx, 31 |
jz @f |
mov ecx, edx |
jecxz @f |
not eax |
shl eax, cl |
and [edi], eax |
404,7 → 404,6 |
call extfsWriteBlock |
pop ecx |
mov eax, ecx |
add [ebp+EXTFS.superblock.blocksFree], ecx |
mul [ebp+EXTFS.sectorsPerBlock] |
sub [ebp+EXTFS.inodeBuffer.sectorsUsed], eax |
.ret: |
430,8 → 429,6 |
.test_block_group: |
call extfsReadDescriptor |
jc .fail |
cmp [ebx+BGDESCR.blocksFree], 0 |
jz .next |
dec [ebx+BGDESCR.inodesFree] |
js .next |
mov edx, [ebx+BGDESCR.inodeBitmap] |
525,8 → 522,10 |
not eax |
shr eax, cl |
shl eax, cl |
bsf ebx, eax |
jnz @f |
mov ebx, 32 |
bsf ebx, eax |
@@: |
sub ebx, ecx |
mov eax, [esp+16] |
cmp ebx, eax |
533,15 → 532,12 |
jc @f |
mov ebx, eax |
@@: |
xchg ebx, ecx |
or eax, -1 |
cmp ebx, 32 |
jz @f |
xchg ebx, ecx |
shl eax, cl |
not eax |
xchg ebx, ecx |
shl eax, cl |
@@: |
or [esi], eax |
sub esi, [ebp+EXTFS.tempBlockBuffer] |
shl esi, 3 |
593,9 → 589,8 |
or eax, -1 |
rep stosd |
mov ecx, ebx |
neg ecx |
add ecx, 32 |
shr eax, cl |
shl eax, cl |
not eax |
or [edi], eax |
.done: |
pop eax |
826,13 → 821,6 |
add eax, 978307200 |
mov [edi+INODE.inodeModified], eax |
pop eax |
cmp eax, ROOT_INODE |
jnz @f |
movzx ecx, [ebp+EXTFS.superblock.inodeSize] |
mov esi, edi |
mov edi, [ebp+EXTFS.rootInodeBuffer] |
rep movsb |
@@: |
call getInodeLocation |
jc .ret |
mov ebx, [ebp+EXTFS.tempBlockBuffer] |
841,10 → 829,10 |
test eax, eax |
jnz @f |
mov eax, ecx |
mov esi, edi |
movzx ecx, [ebp+EXTFS.superblock.inodeSize] |
mov edi, edx |
add edi, ebx |
mov esi, [esp] |
rep movsb |
call fs_write32_sys |
.ret: |