Commit 8e7a5ec8 authored by Zebediah Figura's avatar Zebediah Figura Committed by Alexandre Julliard

server: Use async->iosb->status instead of async->status in async_satisfied().

parent be070154
...@@ -112,13 +112,16 @@ static void async_satisfied( struct object *obj, struct wait_queue_entry *entry ...@@ -112,13 +112,16 @@ static void async_satisfied( struct object *obj, struct wait_queue_entry *entry
struct async *async = (struct async *)obj; struct async *async = (struct async *)obj;
assert( obj->ops == &async_ops ); assert( obj->ops == &async_ops );
/* we only return an async handle for asyncs created via create_request_async() */
assert( async->iosb );
if (async->direct_result) if (async->direct_result)
{ {
async_set_result( &async->obj, async->iosb->status, async->iosb->result ); async_set_result( &async->obj, async->iosb->status, async->iosb->result );
async->direct_result = 0; async->direct_result = 0;
} }
set_wait_status( entry, async->status ); set_wait_status( entry, async->iosb->status );
/* close wait handle here to avoid extra server round trip */ /* close wait handle here to avoid extra server round trip */
if (async->wait_handle) if (async->wait_handle)
...@@ -398,6 +401,7 @@ void async_set_result( struct object *obj, unsigned int status, apc_param_t tota ...@@ -398,6 +401,7 @@ void async_set_result( struct object *obj, unsigned int status, apc_param_t tota
if (async->timeout) remove_timeout_user( async->timeout ); if (async->timeout) remove_timeout_user( async->timeout );
async->timeout = NULL; async->timeout = NULL;
async->status = status; async->status = status;
if (async->iosb) async->iosb->status = status;
if (async->data.apc) if (async->data.apc)
{ {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment