Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
cloud-kernel
提交
a90d742e
cloud-kernel
项目概览
openanolis
/
cloud-kernel
1 年多 前同步成功
通知
160
Star
36
Fork
7
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
10
列表
看板
标记
里程碑
合并请求
2
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
cloud-kernel
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
10
Issue
10
列表
看板
标记
里程碑
合并请求
2
合并请求
2
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
a90d742e
编写于
3月 18, 2006
作者:
A
Al Viro
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
[PATCH] don't bother with refcounting for cfq_data
Signed-off-by:
N
Al Viro
<
viro@zeniv.linux.org.uk
>
上级
483f4afc
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
7 addition
and
21 deletion
+7
-21
block/cfq-iosched.c
block/cfq-iosched.c
+7
-21
未找到文件。
block/cfq-iosched.c
浏览文件 @
a90d742e
...
...
@@ -114,7 +114,6 @@ static struct completion *ioc_gone;
* Per block device queue structure
*/
struct
cfq_data
{
atomic_t
ref
;
request_queue_t
*
queue
;
/*
...
...
@@ -295,7 +294,6 @@ CFQ_CRQ_FNS(is_sync);
static
struct
cfq_queue
*
cfq_find_cfq_hash
(
struct
cfq_data
*
,
unsigned
int
,
unsigned
short
);
static
void
cfq_dispatch_insert
(
request_queue_t
*
,
struct
cfq_rq
*
);
static
void
cfq_put_cfqd
(
struct
cfq_data
*
cfqd
);
static
struct
cfq_queue
*
cfq_get_queue
(
struct
cfq_data
*
cfqd
,
unsigned
int
key
,
struct
task_struct
*
tsk
,
gfp_t
gfp_mask
);
#define process_sync(tsk) ((tsk)->flags & PF_SYNCWRITE)
...
...
@@ -1168,8 +1166,6 @@ static void cfq_put_queue(struct cfq_queue *cfqq)
if
(
unlikely
(
cfqd
->
active_queue
==
cfqq
))
__cfq_slice_expired
(
cfqd
,
cfqq
,
0
);
cfq_put_cfqd
(
cfqq
->
cfqd
);
/*
* it's on the empty list and still hashed
*/
...
...
@@ -1442,7 +1438,6 @@ cfq_get_queue(struct cfq_data *cfqd, unsigned int key, struct task_struct *tsk,
hlist_add_head
(
&
cfqq
->
cfq_hash
,
&
cfqd
->
cfq_hash
[
hashval
]);
atomic_set
(
&
cfqq
->
ref
,
0
);
cfqq
->
cfqd
=
cfqd
;
atomic_inc
(
&
cfqd
->
ref
);
cfqq
->
service_last
=
0
;
/*
* set ->slice_left to allow preemption for a new process
...
...
@@ -2144,19 +2139,6 @@ static void cfq_shutdown_timer_wq(struct cfq_data *cfqd)
blk_sync_queue
(
cfqd
->
queue
);
}
static
void
cfq_put_cfqd
(
struct
cfq_data
*
cfqd
)
{
if
(
!
atomic_dec_and_test
(
&
cfqd
->
ref
))
return
;
cfq_shutdown_timer_wq
(
cfqd
);
mempool_destroy
(
cfqd
->
crq_pool
);
kfree
(
cfqd
->
crq_hash
);
kfree
(
cfqd
->
cfq_hash
);
kfree
(
cfqd
);
}
static
void
cfq_exit_queue
(
elevator_t
*
e
)
{
struct
cfq_data
*
cfqd
=
e
->
elevator_data
;
...
...
@@ -2184,7 +2166,13 @@ static void cfq_exit_queue(elevator_t *e)
}
spin_unlock_irq
(
q
->
queue_lock
);
write_unlock
(
&
cfq_exit_lock
);
cfq_put_cfqd
(
cfqd
);
cfq_shutdown_timer_wq
(
cfqd
);
mempool_destroy
(
cfqd
->
crq_pool
);
kfree
(
cfqd
->
crq_hash
);
kfree
(
cfqd
->
cfq_hash
);
kfree
(
cfqd
);
}
static
int
cfq_init_queue
(
request_queue_t
*
q
,
elevator_t
*
e
)
...
...
@@ -2241,8 +2229,6 @@ static int cfq_init_queue(request_queue_t *q, elevator_t *e)
INIT_WORK
(
&
cfqd
->
unplug_work
,
cfq_kick_queue
,
q
);
atomic_set
(
&
cfqd
->
ref
,
1
);
cfqd
->
cfq_queued
=
cfq_queued
;
cfqd
->
cfq_quantum
=
cfq_quantum
;
cfqd
->
cfq_fifo_expire
[
0
]
=
cfq_fifo_expire
[
0
];
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录