FileObject = IrpContext->FileObject;
DeviceExtension = DeviceObject->DeviceExtension;
+ if (!ExAcquireResourceExclusiveLite(&DeviceExtension->DirResource,
+ BooleanFlagOn(IrpContext->Flags, IRPCONTEXT_CANWAIT)))
+ {
+ return NtfsMarkIrpContextForQueue(IrpContext);
+ }
+
Status = NtfsCleanupFile(DeviceExtension, FileObject, BooleanFlagOn(IrpContext->Flags, IRPCONTEXT_CANWAIT));
+
+ ExReleaseResourceLite(&DeviceExtension->DirResource);
+
if (Status == STATUS_PENDING)
{
return NtfsMarkIrpContextForQueue(IrpContext);