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

Function Ext2AddMcbMetaExts

Ext4Fsd/memory.c:938–980  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

936
937
938BOOLEAN
939Ext2AddMcbMetaExts (
940 IN PEXT2_VCB Vcb,
941 IN PEXT2_MCB Mcb,
942 IN ULONG Block,
943 IN ULONG Length
944)
945{
946 ULONG TriedTimes = 0;
947 LONGLONG Lbn = Block + 1;
948 BOOLEAN rc = TRUE;
949
950Again:
951
952 __try {
953
954 rc = FsRtlAddLargeMcbEntry(
955 &Mcb->MetaExts,
956 Lbn,
957 Lbn,
958 Length
959 );
960
961 } __except (EXCEPTION_EXECUTE_HANDLER) {
962
963 DbgBreak();
964 rc = FALSE;
965 }
966
967 if (!rc && ++TriedTimes < 10) {
968 Ext2Sleep(TriedTimes * 100);
969 goto Again;
970 }
971
972 DEBUG(DL_EXT, ("Ext2AddMcbMetaExts: Block: %xh-%xh rc=%d Runs=%u\n", Block,
973 Length, rc, FsRtlNumberOfRunsInLargeMcb(&Mcb->MetaExts)));
974
975 if (rc) {
976 Ext2CheckExtent(&Mcb->MetaExts, Lbn, Lbn, Length, TRUE);
977 }
978
979 return rc;
980}
981
982BOOLEAN
983Ext2RemoveMcbMetaExts (

Callers 3

Ext2ExpandLastFunction · 0.85
Ext2GetBlockFunction · 0.85
Ext2ExpandBlockFunction · 0.85

Calls 2

Ext2SleepFunction · 0.85
Ext2CheckExtentFunction · 0.85

Tested by

no test coverage detected