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

Function Ext2RemoveMcbMetaExts

Ext4Fsd/memory.c:982–1021  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

980}
981
982BOOLEAN
983Ext2RemoveMcbMetaExts (
984 IN PEXT2_VCB Vcb,
985 IN PEXT2_MCB Mcb,
986 IN ULONG Block,
987 IN ULONG Length
988)
989{
990 ULONG TriedTimes = 0;
991 LONGLONG Lbn = Block + 1;
992 BOOLEAN rc = TRUE;
993
994Again:
995
996 __try {
997
998 FsRtlRemoveLargeMcbEntry(
999 &Mcb->MetaExts,
1000 Lbn,
1001 Length
1002 );
1003
1004 } __except (EXCEPTION_EXECUTE_HANDLER) {
1005 DbgBreak();
1006 rc = FALSE;
1007 }
1008
1009 if (!rc && ++TriedTimes < 10) {
1010 Ext2Sleep(TriedTimes * 100);
1011 goto Again;
1012 }
1013
1014 DEBUG(DL_EXT, ("Ext2RemoveMcbMetaExts: Block: %xh-%xhh Runs=%u\n", Block,
1015 Length, FsRtlNumberOfRunsInLargeMcb(&Mcb->MetaExts)));
1016 if (rc) {
1017 Ext2CheckExtent(&Mcb->MetaExts, Lbn, 0, Length, FALSE);
1018 }
1019
1020 return rc;
1021}
1022
1023
1024BOOLEAN

Callers 1

Ext2TruncateBlockFunction · 0.85

Calls 2

Ext2SleepFunction · 0.85
Ext2CheckExtentFunction · 0.85

Tested by

no test coverage detected