Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
Kernel
提交
b0f655d0
K
Kernel
项目概览
openeuler
/
Kernel
1 年多 前同步成功
通知
8
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
K
Kernel
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
b0f655d0
编写于
5月 11, 2007
作者:
J
Jens Axboe
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
scsi generic: sg chaining support
Signed-off-by:
N
Jens Axboe
<
jens.axboe@oracle.com
>
上级
852e034d
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
8 addition
and
8 deletion
+8
-8
drivers/scsi/sg.c
drivers/scsi/sg.c
+8
-8
未找到文件。
drivers/scsi/sg.c
浏览文件 @
b0f655d0
...
...
@@ -1165,7 +1165,7 @@ sg_vma_nopage(struct vm_area_struct *vma, unsigned long addr, int *type)
sg
=
rsv_schp
->
buffer
;
sa
=
vma
->
vm_start
;
for
(
k
=
0
;
(
k
<
rsv_schp
->
k_use_sg
)
&&
(
sa
<
vma
->
vm_end
);
++
k
,
++
sg
)
{
++
k
,
sg
=
sg_next
(
sg
)
)
{
len
=
vma
->
vm_end
-
sa
;
len
=
(
len
<
sg
->
length
)
?
len
:
sg
->
length
;
if
(
offset
<
len
)
{
...
...
@@ -1209,7 +1209,7 @@ sg_mmap(struct file *filp, struct vm_area_struct *vma)
sa
=
vma
->
vm_start
;
sg
=
rsv_schp
->
buffer
;
for
(
k
=
0
;
(
k
<
rsv_schp
->
k_use_sg
)
&&
(
sa
<
vma
->
vm_end
);
++
k
,
++
sg
)
{
++
k
,
sg
=
sg_next
(
sg
)
)
{
len
=
vma
->
vm_end
-
sa
;
len
=
(
len
<
sg
->
length
)
?
len
:
sg
->
length
;
sa
+=
len
;
...
...
@@ -1840,7 +1840,7 @@ sg_build_indirect(Sg_scatter_hold * schp, Sg_fd * sfp, int buff_size)
}
for
(
k
=
0
,
sg
=
schp
->
buffer
,
rem_sz
=
blk_size
;
(
rem_sz
>
0
)
&&
(
k
<
mx_sc_elems
);
++
k
,
rem_sz
-=
ret_sz
,
++
sg
)
{
++
k
,
rem_sz
-=
ret_sz
,
sg
=
sg_next
(
sg
)
)
{
num
=
(
rem_sz
>
scatter_elem_sz_prev
)
?
scatter_elem_sz_prev
:
rem_sz
;
...
...
@@ -1913,7 +1913,7 @@ sg_write_xfer(Sg_request * srp)
if
(
res
)
return
res
;
for
(;
p
;
++
sg
,
ksglen
=
sg
->
length
,
for
(;
p
;
sg
=
sg_next
(
sg
)
,
ksglen
=
sg
->
length
,
p
=
page_address
(
sg
->
page
))
{
if
(
usglen
<=
0
)
break
;
...
...
@@ -1992,7 +1992,7 @@ sg_remove_scat(Sg_scatter_hold * schp)
int
k
;
for
(
k
=
0
;
(
k
<
schp
->
k_use_sg
)
&&
sg
->
page
;
++
k
,
++
sg
)
{
++
k
,
sg
=
sg_next
(
sg
)
)
{
SCSI_LOG_TIMEOUT
(
5
,
printk
(
"sg_remove_scat: k=%d, pg=0x%p, len=%d
\n
"
,
k
,
sg
->
page
,
sg
->
length
));
...
...
@@ -2045,7 +2045,7 @@ sg_read_xfer(Sg_request * srp)
if
(
res
)
return
res
;
for
(;
p
;
++
sg
,
ksglen
=
sg
->
length
,
for
(;
p
;
sg
=
sg_next
(
sg
)
,
ksglen
=
sg
->
length
,
p
=
page_address
(
sg
->
page
))
{
if
(
usglen
<=
0
)
break
;
...
...
@@ -2092,7 +2092,7 @@ sg_read_oxfer(Sg_request * srp, char __user *outp, int num_read_xfer)
if
((
!
outp
)
||
(
num_read_xfer
<=
0
))
return
0
;
for
(
k
=
0
;
(
k
<
schp
->
k_use_sg
)
&&
sg
->
page
;
++
k
,
++
sg
)
{
for
(
k
=
0
;
(
k
<
schp
->
k_use_sg
)
&&
sg
->
page
;
++
k
,
sg
=
sg_next
(
sg
)
)
{
num
=
sg
->
length
;
if
(
num
>
num_read_xfer
)
{
if
(
__copy_to_user
(
outp
,
page_address
(
sg
->
page
),
...
...
@@ -2142,7 +2142,7 @@ sg_link_reserve(Sg_fd * sfp, Sg_request * srp, int size)
SCSI_LOG_TIMEOUT
(
4
,
printk
(
"sg_link_reserve: size=%d
\n
"
,
size
));
rem
=
size
;
for
(
k
=
0
;
k
<
rsv_schp
->
k_use_sg
;
++
k
,
++
sg
)
{
for
(
k
=
0
;
k
<
rsv_schp
->
k_use_sg
;
++
k
,
sg
=
sg_next
(
sg
)
)
{
num
=
sg
->
length
;
if
(
rem
<=
num
)
{
sfp
->
save_scat_len
=
num
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录