Signed-off-by: Zebediah Figura zfigura@codeweavers.com --- dlls/ntoskrnl.exe/tests/ntoskrnl.c | 12 ++++++------ server/async.c | 4 ++-- server/device.c | 2 +- server/file.h | 2 +- server/sock.c | 4 ++-- 5 files changed, 12 insertions(+), 12 deletions(-)
diff --git a/dlls/ntoskrnl.exe/tests/ntoskrnl.c b/dlls/ntoskrnl.exe/tests/ntoskrnl.c index 4f8dd6585a4..de09abb04ba 100644 --- a/dlls/ntoskrnl.exe/tests/ntoskrnl.c +++ b/dlls/ntoskrnl.exe/tests/ntoskrnl.c @@ -1169,15 +1169,15 @@ static void test_blocking_irp(void)
memset(&io, 0xcc, sizeof(io)); status = NtQueryVolumeInformationFile(file, &io, buffer, sizeof(buffer), FileFsSizeInformation); - todo_wine ok(!status, "got %#x\n", status); - todo_wine ok(!io.Status, "got iosb status %#x\n", io.Status); - todo_wine ok(!io.Information, "got information %#Ix\n", io.Information); + ok(!status, "got %#x\n", status); + ok(!io.Status, "got iosb status %#x\n", io.Status); + ok(!io.Information, "got information %#Ix\n", io.Information);
memset(&io, 0xcc, sizeof(io)); status = NtQueryVolumeInformationFile(file, &io, buffer, sizeof(buffer), FileFsFullSizeInformation); - todo_wine ok(status == STATUS_DEVICE_NOT_READY, "got %#x\n", status); - todo_wine ok(io.Status == STATUS_DEVICE_NOT_READY, "got iosb status %#x\n", io.Status); - todo_wine ok(!io.Information, "got information %#Ix\n", io.Information); + ok(status == STATUS_DEVICE_NOT_READY, "got %#x\n", status); + ok(io.Status == STATUS_DEVICE_NOT_READY, "got iosb status %#x\n", io.Status); + ok(!io.Information, "got information %#Ix\n", io.Information);
CloseHandle(file); } diff --git a/server/async.c b/server/async.c index 6aba392fd84..4822b0735c6 100644 --- a/server/async.c +++ b/server/async.c @@ -285,13 +285,13 @@ struct async *create_async( struct fd *fd, struct thread *thread, const async_da return async; }
-void set_async_pending( struct async *async, int signal ) +void set_async_pending( struct async *async ) { if (!async->terminated) { async->pending = 1; async->unknown_status = 0; - if (signal && !async->signaled) + if (!async->blocking && !async->signaled) { async->signaled = 1; wake_up( &async->obj, 0 ); diff --git a/server/device.c b/server/device.c index 9515d238fb4..a2383ecdc7c 100644 --- a/server/device.c +++ b/server/device.c @@ -961,7 +961,7 @@ DECL_HANDLER(get_next_device_request) * so we need to do it now */ cancel_irp_call( irp ); else if (irp->async) - set_async_pending( irp->async, irp->file && is_fd_overlapped( irp->file->fd ) ); + set_async_pending( irp->async );
free_irp_params( irp ); release_object( irp ); diff --git a/server/file.h b/server/file.h index 22879b75c05..80f2191c050 100644 --- a/server/file.h +++ b/server/file.h @@ -229,7 +229,7 @@ extern void async_set_timeout( struct async *async, timeout_t timeout, unsigned extern void async_set_result( struct object *obj, unsigned int status, apc_param_t total ); extern void async_set_completion_callback( struct async *async, async_completion_callback func, void *private ); extern void async_set_unknown_status( struct async *async ); -extern void set_async_pending( struct async *async, int signal ); +extern void set_async_pending( struct async *async ); extern int async_waiting( struct async_queue *queue ); extern void async_terminate( struct async *async, unsigned int status ); extern void async_request_complete( struct async *async, unsigned int status, data_size_t result, diff --git a/server/sock.c b/server/sock.c index bfaf6329ff4..d61ed5b95b2 100644 --- a/server/sock.c +++ b/server/sock.c @@ -2399,7 +2399,7 @@ static void sock_ioctl( struct fd *fd, ioctl_code_t code, struct async *async ) obj_handle_t event_handle; int mask;
- set_async_pending( async, 0 ); + set_async_pending( async );
if (is_machine_64bit( current->process->machine )) { @@ -2530,7 +2530,7 @@ static void sock_ioctl( struct fd *fd, ioctl_code_t code, struct async *async ) #endif }
- set_async_pending( async, 0 ); + set_async_pending( async );
if (bind( unix_fd, &bind_addr.addr, unix_len ) < 0) {