Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
L
linux
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
linux
Commits
ae298c98
Commit
ae298c98
authored
Aug 21, 2006
by
Greg Kroah-Hartman
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'for-linus' of
git://brick.kernel.dk/data/git/linux-2.6-block
parents
da547d77
be33c3a6
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
32 additions
and
25 deletions
+32
-25
block/cfq-iosched.c
block/cfq-iosched.c
+1
-1
block/ll_rw_blk.c
block/ll_rw_blk.c
+2
-0
fs/ioprio.c
fs/ioprio.c
+28
-2
include/linux/ioprio.h
include/linux/ioprio.h
+1
-22
No files found.
block/cfq-iosched.c
View file @
ae298c98
...
...
@@ -1561,7 +1561,7 @@ cfq_cic_link(struct cfq_data *cfqd, struct io_context *ioc,
/* ->key must be copied to avoid race with cfq_exit_queue() */
k
=
__cic
->
key
;
if
(
unlikely
(
!
k
))
{
cfq_drop_dead_cic
(
ioc
,
cic
);
cfq_drop_dead_cic
(
ioc
,
__
cic
);
goto
restart
;
}
...
...
block/ll_rw_blk.c
View file @
ae298c98
...
...
@@ -3628,6 +3628,8 @@ struct io_context *current_io_context(gfp_t gfp_flags)
ret
->
nr_batch_requests
=
0
;
/* because this is 0 */
ret
->
aic
=
NULL
;
ret
->
cic_root
.
rb_node
=
NULL
;
/* make sure set_task_ioprio() sees the settings above */
smp_wmb
();
tsk
->
io_context
=
ret
;
}
...
...
fs/ioprio.c
View file @
ae298c98
...
...
@@ -44,6 +44,9 @@ static int set_task_ioprio(struct task_struct *task, int ioprio)
task
->
ioprio
=
ioprio
;
ioc
=
task
->
io_context
;
/* see wmb() in current_io_context() */
smp_read_barrier_depends
();
if
(
ioc
&&
ioc
->
set_ioprio
)
ioc
->
set_ioprio
(
ioc
,
ioprio
);
...
...
@@ -111,9 +114,9 @@ asmlinkage long sys_ioprio_set(int which, int who, int ioprio)
continue
;
ret
=
set_task_ioprio
(
p
,
ioprio
);
if
(
ret
)
break
;
goto
free_uid
;
}
while_each_thread
(
g
,
p
);
free_uid:
if
(
who
)
free_uid
(
user
);
break
;
...
...
@@ -137,6 +140,29 @@ static int get_task_ioprio(struct task_struct *p)
return
ret
;
}
int
ioprio_best
(
unsigned
short
aprio
,
unsigned
short
bprio
)
{
unsigned
short
aclass
=
IOPRIO_PRIO_CLASS
(
aprio
);
unsigned
short
bclass
=
IOPRIO_PRIO_CLASS
(
bprio
);
if
(
!
ioprio_valid
(
aprio
))
return
bprio
;
if
(
!
ioprio_valid
(
bprio
))
return
aprio
;
if
(
aclass
==
IOPRIO_CLASS_NONE
)
aclass
=
IOPRIO_CLASS_BE
;
if
(
bclass
==
IOPRIO_CLASS_NONE
)
bclass
=
IOPRIO_CLASS_BE
;
if
(
aclass
==
bclass
)
return
min
(
aprio
,
bprio
);
if
(
aclass
>
bclass
)
return
bprio
;
else
return
aprio
;
}
asmlinkage
long
sys_ioprio_get
(
int
which
,
int
who
)
{
struct
task_struct
*
g
,
*
p
;
...
...
include/linux/ioprio.h
View file @
ae298c98
...
...
@@ -59,27 +59,6 @@ static inline int task_nice_ioprio(struct task_struct *task)
/*
* For inheritance, return the highest of the two given priorities
*/
static
inline
int
ioprio_best
(
unsigned
short
aprio
,
unsigned
short
bprio
)
{
unsigned
short
aclass
=
IOPRIO_PRIO_CLASS
(
aprio
);
unsigned
short
bclass
=
IOPRIO_PRIO_CLASS
(
bprio
);
if
(
!
ioprio_valid
(
aprio
))
return
bprio
;
if
(
!
ioprio_valid
(
bprio
))
return
aprio
;
if
(
aclass
==
IOPRIO_CLASS_NONE
)
aclass
=
IOPRIO_CLASS_BE
;
if
(
bclass
==
IOPRIO_CLASS_NONE
)
bclass
=
IOPRIO_CLASS_BE
;
if
(
aclass
==
bclass
)
return
min
(
aprio
,
bprio
);
if
(
aclass
>
bclass
)
return
bprio
;
else
return
aprio
;
}
extern
int
ioprio_best
(
unsigned
short
aprio
,
unsigned
short
bprio
);
#endif
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