Index: drivers/filesystems/udfs/udf_info/extent.cpp =================================================================== --- drivers/filesystems/udfs/udf_info/extent.cpp (revision 71259) +++ drivers/filesystems/udfs/udf_info/extent.cpp (working copy) @@ -2154,6 +2154,7 @@ Extent[i].extLocation = 0; Extent[i].extLength = (Extent[i].extLength & UDF_EXTENT_LENGTH_MASK) | flags; NewExtent = Extent; + Extent = NULL; AdPrint(("Alloc->Not (1) NewExtent = Extent = %x\n", NewExtent)); } else if(l < BOffs) { @@ -2207,15 +2208,17 @@ if(Deallocate) UDFMarkSpaceAsXXX(Vcb, (-1), TmpExtInf.Mapping, AS_DISCARDED); // mark as free + ExtInfo->Modified = TRUE; + ExtInfo->Mapping = NewExtent; + + AdPrint(("Alloc->Not: ExtInfo %x, Extent %x\n", ExtInfo, ExtInfo->Mapping)); + if(Extent) { AdPrint(("Alloc->Not kill %x\n", Extent)); MyFreePool__(Extent); } else { AdPrint(("Alloc->Not keep %x\n", Extent)); - } - ExtInfo->Modified = TRUE; - ExtInfo->Mapping = NewExtent; - AdPrint(("Alloc->Not: ExtInfo %x, Extent %x\n", ExtInfo, ExtInfo->Mapping)); + } return STATUS_SUCCESS; } // end UDFMarkAllocatedAsNotXXX()