Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-cw
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wine
wine-cw
Commits
8268ad55
Commit
8268ad55
authored
Oct 30, 2007
by
Alexandre Julliard
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
server: Remove failed ioctls from the queue as soon as the result is set.
parent
a844a38f
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
12 additions
and
3 deletions
+12
-3
device.c
server/device.c
+12
-3
No files found.
server/device.c
View file @
8268ad55
...
...
@@ -226,11 +226,20 @@ static void set_ioctl_result( struct ioctl_call *ioctl, unsigned int status,
ioctl
->
device
=
NULL
;
if
(
ioctl
->
async
)
{
async_terminate
(
ioctl
->
async
,
ioctl
->
out_size
?
STATUS_ALERTED
:
status
);
if
(
ioctl
->
out_size
)
status
=
STATUS_ALERTED
;
async_terminate
(
ioctl
->
async
,
status
);
release_object
(
ioctl
->
async
);
ioctl
->
async
=
NULL
;
}
wake_up
(
&
ioctl
->
obj
,
0
);
if
(
status
!=
STATUS_ALERTED
)
{
/* remove it from the device queue */
/* (for STATUS_ALERTED this will be done in get_ioctl_result) */
list_remove
(
&
ioctl
->
dev_entry
);
release_object
(
ioctl
);
/* no longer on the device queue */
}
}
...
...
@@ -352,12 +361,12 @@ static struct device *create_device( struct directory *root, const struct unicod
static
void
delete_device
(
struct
device
*
device
)
{
struct
ioctl_call
*
ioctl
;
struct
ioctl_call
*
ioctl
,
*
next
;
if
(
!
device
->
manager
)
return
;
/* already deleted */
/* terminate all pending requests */
LIST_FOR_EACH_ENTRY
(
ioctl
,
&
device
->
requests
,
struct
ioctl_call
,
dev_entry
)
LIST_FOR_EACH_ENTRY
_SAFE
(
ioctl
,
next
,
&
device
->
requests
,
struct
ioctl_call
,
dev_entry
)
{
list_remove
(
&
ioctl
->
mgr_entry
);
set_ioctl_result
(
ioctl
,
STATUS_FILE_DELETED
,
NULL
,
0
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment