| 1803 | } |
| 1804 | |
| 1805 | VOID |
| 1806 | Ext2CleanupAllMcbs(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 | |
| 1839 | BOOLEAN |
| 1840 | Ext2CheckSetBlock(PEXT2_IRP_CONTEXT IrpContext, PEXT2_VCB Vcb, LONGLONG Block) |
no test coverage detected