| 2776 | |
| 2777 | |
| 2778 | VOID |
| 2779 | Ext2TearDownStream(IN PEXT2_VCB Vcb) |
| 2780 | { |
| 2781 | PFILE_OBJECT Stream = Vcb->Volume; |
| 2782 | IO_STATUS_BLOCK IoStatus; |
| 2783 | |
| 2784 | ASSERT(Vcb != NULL); |
| 2785 | ASSERT((Vcb->Identifier.Type == EXT2VCB) && |
| 2786 | (Vcb->Identifier.Size == sizeof(EXT2_VCB))); |
| 2787 | |
| 2788 | if (Stream) { |
| 2789 | |
| 2790 | Vcb->Volume = NULL; |
| 2791 | |
| 2792 | if (IsFlagOn(Stream->Flags, FO_FILE_MODIFIED)) { |
| 2793 | CcFlushCache(&(Vcb->SectionObject), NULL, 0, &IoStatus); |
| 2794 | ClearFlag(Stream->Flags, FO_FILE_MODIFIED); |
| 2795 | } |
| 2796 | |
| 2797 | if (Stream->PrivateCacheMap) { |
| 2798 | Ext2SyncUninitializeCacheMap(Stream); |
| 2799 | } |
| 2800 | |
| 2801 | ObDereferenceObject(Stream); |
| 2802 | } |
| 2803 | } |
| 2804 | |
| 2805 | VOID |
| 2806 | Ext2DestroyVcb (IN PEXT2_VCB Vcb) |
no test coverage detected