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

Function Ext2CleanupAllMcbs

Ext4Fsd/memory.c:1805–1837  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1803}
1804
1805VOID
1806Ext2CleanupAllMcbs(PEXT2_VCB Vcb)
1807{
1808 BOOLEAN LockAcquired = FALSE;
1809 PEXT2_MCB Mcb = NULL;
1810
1811 __try {
1812
1813 ExAcquireResourceExclusiveLite(
1814 &Vcb->McbLock,
1815 TRUE );
1816 LockAcquired = TRUE;
1817
1818 while (Mcb = Ext2FirstUnusedMcb(Vcb, TRUE, Vcb->NumOfMcb)) {
1819 while (Mcb) {
1820 PEXT2_MCB Next = Mcb->Next;
1821 if (IsMcbSymLink(Mcb)) {
1822 Mcb->Target = NULL;
1823 }
1824 Ext2FreeMcb(Vcb, Mcb);
1825 Mcb = Next;
1826 }
1827 }
1828 Ext2FreeMcb(Vcb, Vcb->McbTree);
1829 Vcb->McbTree = NULL;
1830
1831 } __finally {
1832
1833 if (LockAcquired) {
1834 ExReleaseResourceLite(&Vcb->McbLock);
1835 }
1836 }
1837}
1838
1839BOOLEAN
1840Ext2CheckSetBlock(PEXT2_IRP_CONTEXT IrpContext, PEXT2_VCB Vcb, LONGLONG Block)

Callers 1

Ext2DestroyVcbFunction · 0.85

Calls 2

Ext2FirstUnusedMcbFunction · 0.85
Ext2FreeMcbFunction · 0.85

Tested by

no test coverage detected