MCPcopy Create free account
hub / github.com/bobranten/Ext4Fsd / Ext2CheckBitmapConsistency

Function Ext2CheckBitmapConsistency

Ext4Fsd/memory.c:1890–1923  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1888}
1889
1890BOOLEAN
1891Ext2CheckBitmapConsistency(PEXT2_IRP_CONTEXT IrpContext, PEXT2_VCB Vcb)
1892{
1893 ULONG i, j, InodeBlocks;
1894
1895 for (i = 0; i < Vcb->sbi.s_groups_count; i++) {
1896
1897 PEXT2_GROUP_DESC gd;
1898 struct buffer_head *bh = NULL;
1899
1900 gd = ext4_get_group_desc(&Vcb->sb, i, &bh);
1901 if (!gd)
1902 continue;
1903 Ext2CheckSetBlock(IrpContext, Vcb, ext4_block_bitmap(&Vcb->sb, gd));
1904 Ext2CheckSetBlock(IrpContext, Vcb, ext4_inode_bitmap(&Vcb->sb, gd));
1905
1906
1907 if (i == Vcb->sbi.s_groups_count - 1) {
1908 InodeBlocks = ((INODES_COUNT % INODES_PER_GROUP) *
1909 Vcb->InodeSize + Vcb->BlockSize - 1) /
1910 (Vcb->BlockSize);
1911 } else {
1912 InodeBlocks = (INODES_PER_GROUP * Vcb->InodeSize +
1913 Vcb->BlockSize - 1) / (Vcb->BlockSize);
1914 }
1915
1916 for (j = 0; j < InodeBlocks; j++ )
1917 Ext2CheckSetBlock(IrpContext, Vcb, ext4_inode_table(&Vcb->sb, gd) + j);
1918
1919 fini_bh(&bh);
1920 }
1921
1922 return TRUE;
1923}
1924
1925/* Ext2Global->Resource should be already acquired */
1926VOID

Callers 1

Ext2InitializeVcbFunction · 0.85

Calls 6

ext4_get_group_descFunction · 0.85
Ext2CheckSetBlockFunction · 0.85
ext4_block_bitmapFunction · 0.85
ext4_inode_bitmapFunction · 0.85
ext4_inode_tableFunction · 0.85
fini_bhFunction · 0.85

Tested by

no test coverage detected