From f2535484eaad27161b98cb92bc3a65de92b44424 Mon Sep 17 00:00:00 2001 From: Bill Zissimopoulos Date: Sat, 12 Nov 2016 11:43:47 -0800 Subject: [PATCH] sys: wq: WIP --- src/sys/wq.c | 27 ++++++++++++--------------- 1 file changed, 12 insertions(+), 15 deletions(-) diff --git a/src/sys/wq.c b/src/sys/wq.c index eb2bd85f..2b9e4005 100644 --- a/src/sys/wq.c +++ b/src/sys/wq.c @@ -62,11 +62,10 @@ NTSTATUS FspWqCreateAndPostIrpWorkItem(PIRP Irp, FSP_FSCTL_TRANSACT_REQ *Request = FspIrpRequest(Irp); FSP_FSCTL_TRANSACT_REQ_WORK_ITEM *RequestWorkItem; + NTSTATUS Result; if (0 == Request) { - NTSTATUS Result; - Result = FspWqPrepareIrpWorkItem(Irp); if (!NT_SUCCESS(Result)) return Result; @@ -79,21 +78,19 @@ NTSTATUS FspWqCreateAndPostIrpWorkItem(PIRP Irp, RequestWorkItem->WorkRoutine = WorkRoutine; ExInitializeWorkItem(&RequestWorkItem->WorkQueueItem, FspWqWorkRoutine, Irp); } - else + else if (0 == FspIopRequestWorkItem(Request)) { + Result = FspWqPrepareIrpWorkItem(Irp); + if (!NT_SUCCESS(Result)) + return Result; + + Result = FspIopCreateRequestWorkItem(Request); + if (!NT_SUCCESS(Result)) + return Result; + RequestWorkItem = FspIopRequestWorkItem(Request); - if (0 == RequestWorkItem) - { - NTSTATUS Result; - - Result = FspIopCreateRequestWorkItem(Request); - if (!NT_SUCCESS(Result)) - return Result; - - RequestWorkItem = FspIopRequestWorkItem(Request); - RequestWorkItem->WorkRoutine = WorkRoutine; - ExInitializeWorkItem(&RequestWorkItem->WorkQueueItem, FspWqWorkRoutine, Irp); - } + RequestWorkItem->WorkRoutine = WorkRoutine; + ExInitializeWorkItem(&RequestWorkItem->WorkQueueItem, FspWqWorkRoutine, Irp); } if (!CreateAndPost)