[NTFS]
authorPierre Schweitzer <pierre@reactos.org>
Sun, 24 May 2015 15:26:15 +0000 (15:26 +0000)
committerPierre Schweitzer <pierre@reactos.org>
Sun, 24 May 2015 15:26:15 +0000 (15:26 +0000)
Use non-paged lookaside list for IRP context allocation

svn path=/trunk/; revision=67883

reactos/drivers/filesystems/ntfs/dispatch.c
reactos/drivers/filesystems/ntfs/misc.c
reactos/drivers/filesystems/ntfs/ntfs.c
reactos/drivers/filesystems/ntfs/ntfs.h

index 27bbad4..91cea55 100644 (file)
@@ -117,7 +117,7 @@ NtfsDispatch(PNTFS_IRP_CONTEXT IrpContext)
     }
     else
     {
-        ExFreePoolWithTag(IrpContext, 'PRIN');
+        ExFreeToNPagedLookasideList(&NtfsGlobalData->IrpContextLookasideList, IrpContext);
     }
 
     IoSetTopLevelIrp(NULL);
index 12bfdc2..a163e0f 100644 (file)
@@ -70,9 +70,7 @@ NtfsAllocateIrpContext(PDEVICE_OBJECT DeviceObject,
 
     TRACE_(NTFS, "NtfsAllocateIrpContext()\n");
 
-    IrpContext = (PNTFS_IRP_CONTEXT)ExAllocatePoolWithTag(NonPagedPool,
-                                                          sizeof(NTFS_IRP_CONTEXT),
-                                                          'PRIN');
+    IrpContext = (PNTFS_IRP_CONTEXT)ExAllocateFromNPagedLookasideList(&NtfsGlobalData->IrpContextLookasideList);
     if (IrpContext == NULL)
         return NULL;
 
index 5ba10c8..cbb53a8 100644 (file)
@@ -96,6 +96,10 @@ DriverEntry(PDRIVER_OBJECT DriverObject,
     NtfsGlobalData->FastIoDispatch.FastIoWrite = NtfsFastIoWrite;
     DriverObject->FastIoDispatch = &NtfsGlobalData->FastIoDispatch;
 
+    /* Initialize lookaside list for IRP contexts */
+    ExInitializeNPagedLookasideList(&NtfsGlobalData->IrpContextLookasideList,
+                                    NULL, NULL, 0, sizeof(NTFS_IRP_CONTEXT), 'PRIN', 0);
+
     /* Driver can't be unloaded */
     DriverObject->DriverUnload = NULL;
 
index e9f2ee5..530f4f0 100644 (file)
@@ -137,6 +137,7 @@ typedef struct
     CACHE_MANAGER_CALLBACKS CacheMgrCallbacks;
     ULONG Flags;
     FAST_IO_DISPATCH FastIoDispatch;
+    NPAGED_LOOKASIDE_LIST IrpContextLookasideList;
 } NTFS_GLOBAL_DATA, *PNTFS_GLOBAL_DATA;