Moar locking
Any resemblance to previous commit, living or dead, is purely coincidental
svn path=/trunk/; revision=70778
FileObject = IrpContext->FileObject;
DeviceExtension = DeviceObject->DeviceExtension;
+ if (!ExAcquireResourceExclusiveLite(&DeviceExtension->DirResource,
+ BooleanFlagOn(IrpContext->Flags, IRPCONTEXT_CANWAIT)))
+ {
+ return NtfsMarkIrpContextForQueue(IrpContext);
+ }
+
Status = NtfsCloseFile(DeviceExtension, FileObject);
+ ExReleaseResourceLite(&DeviceExtension->DirResource);
+
+ if (Status == STATUS_PENDING)
+ {
+ return NtfsMarkIrpContextForQueue(IrpContext);
+ }
+
IrpContext->Irp->IoStatus.Information = 0;
return Status;
}