Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
cloud-kernel
提交
50bc9b65
cloud-kernel
项目概览
openanolis
/
cloud-kernel
大约 1 年 前同步成功
通知
158
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看板
体验新版 GitCode,发现更多精彩内容 >>
提交
50bc9b65
编写于
11月 25, 2011
作者:
C
Cong Wang
提交者:
Cong Wang
3月 20, 2012
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
logfs: remove the second argument of k[un]map_atomic()
Signed-off-by:
N
Cong Wang
<
amwang@redhat.com
>
上级
303a8f2a
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
30 addition
and
30 deletion
+30
-30
fs/logfs/dir.c
fs/logfs/dir.c
+9
-9
fs/logfs/readwrite.c
fs/logfs/readwrite.c
+19
-19
fs/logfs/segment.c
fs/logfs/segment.c
+2
-2
未找到文件。
fs/logfs/dir.c
浏览文件 @
50bc9b65
...
@@ -177,17 +177,17 @@ static struct page *logfs_get_dd_page(struct inode *dir, struct dentry *dentry)
...
@@ -177,17 +177,17 @@ static struct page *logfs_get_dd_page(struct inode *dir, struct dentry *dentry)
(
filler_t
*
)
logfs_readpage
,
NULL
);
(
filler_t
*
)
logfs_readpage
,
NULL
);
if
(
IS_ERR
(
page
))
if
(
IS_ERR
(
page
))
return
page
;
return
page
;
dd
=
kmap_atomic
(
page
,
KM_USER0
);
dd
=
kmap_atomic
(
page
);
BUG_ON
(
dd
->
namelen
==
0
);
BUG_ON
(
dd
->
namelen
==
0
);
if
(
name
->
len
!=
be16_to_cpu
(
dd
->
namelen
)
||
if
(
name
->
len
!=
be16_to_cpu
(
dd
->
namelen
)
||
memcmp
(
name
->
name
,
dd
->
name
,
name
->
len
))
{
memcmp
(
name
->
name
,
dd
->
name
,
name
->
len
))
{
kunmap_atomic
(
dd
,
KM_USER0
);
kunmap_atomic
(
dd
);
page_cache_release
(
page
);
page_cache_release
(
page
);
continue
;
continue
;
}
}
kunmap_atomic
(
dd
,
KM_USER0
);
kunmap_atomic
(
dd
);
return
page
;
return
page
;
}
}
return
NULL
;
return
NULL
;
...
@@ -365,9 +365,9 @@ static struct dentry *logfs_lookup(struct inode *dir, struct dentry *dentry,
...
@@ -365,9 +365,9 @@ static struct dentry *logfs_lookup(struct inode *dir, struct dentry *dentry,
return
NULL
;
return
NULL
;
}
}
index
=
page
->
index
;
index
=
page
->
index
;
dd
=
kmap_atomic
(
page
,
KM_USER0
);
dd
=
kmap_atomic
(
page
);
ino
=
be64_to_cpu
(
dd
->
ino
);
ino
=
be64_to_cpu
(
dd
->
ino
);
kunmap_atomic
(
dd
,
KM_USER0
);
kunmap_atomic
(
dd
);
page_cache_release
(
page
);
page_cache_release
(
page
);
inode
=
logfs_iget
(
dir
->
i_sb
,
ino
);
inode
=
logfs_iget
(
dir
->
i_sb
,
ino
);
...
@@ -402,12 +402,12 @@ static int logfs_write_dir(struct inode *dir, struct dentry *dentry,
...
@@ -402,12 +402,12 @@ static int logfs_write_dir(struct inode *dir, struct dentry *dentry,
if
(
!
page
)
if
(
!
page
)
return
-
ENOMEM
;
return
-
ENOMEM
;
dd
=
kmap_atomic
(
page
,
KM_USER0
);
dd
=
kmap_atomic
(
page
);
memset
(
dd
,
0
,
sizeof
(
*
dd
));
memset
(
dd
,
0
,
sizeof
(
*
dd
));
dd
->
ino
=
cpu_to_be64
(
inode
->
i_ino
);
dd
->
ino
=
cpu_to_be64
(
inode
->
i_ino
);
dd
->
type
=
logfs_type
(
inode
);
dd
->
type
=
logfs_type
(
inode
);
logfs_set_name
(
dd
,
&
dentry
->
d_name
);
logfs_set_name
(
dd
,
&
dentry
->
d_name
);
kunmap_atomic
(
dd
,
KM_USER0
);
kunmap_atomic
(
dd
);
err
=
logfs_write_buf
(
dir
,
page
,
WF_LOCK
);
err
=
logfs_write_buf
(
dir
,
page
,
WF_LOCK
);
unlock_page
(
page
);
unlock_page
(
page
);
...
@@ -579,9 +579,9 @@ static int logfs_get_dd(struct inode *dir, struct dentry *dentry,
...
@@ -579,9 +579,9 @@ static int logfs_get_dd(struct inode *dir, struct dentry *dentry,
if
(
IS_ERR
(
page
))
if
(
IS_ERR
(
page
))
return
PTR_ERR
(
page
);
return
PTR_ERR
(
page
);
*
pos
=
page
->
index
;
*
pos
=
page
->
index
;
map
=
kmap_atomic
(
page
,
KM_USER0
);
map
=
kmap_atomic
(
page
);
memcpy
(
dd
,
map
,
sizeof
(
*
dd
));
memcpy
(
dd
,
map
,
sizeof
(
*
dd
));
kunmap_atomic
(
map
,
KM_USER0
);
kunmap_atomic
(
map
);
page_cache_release
(
page
);
page_cache_release
(
page
);
return
0
;
return
0
;
}
}
...
...
fs/logfs/readwrite.c
浏览文件 @
50bc9b65
...
@@ -517,9 +517,9 @@ static int indirect_write_alias(struct super_block *sb,
...
@@ -517,9 +517,9 @@ static int indirect_write_alias(struct super_block *sb,
ino
=
page
->
mapping
->
host
->
i_ino
;
ino
=
page
->
mapping
->
host
->
i_ino
;
logfs_unpack_index
(
page
->
index
,
&
bix
,
&
level
);
logfs_unpack_index
(
page
->
index
,
&
bix
,
&
level
);
child
=
kmap_atomic
(
page
,
KM_USER0
);
child
=
kmap_atomic
(
page
);
val
=
child
[
pos
];
val
=
child
[
pos
];
kunmap_atomic
(
child
,
KM_USER0
);
kunmap_atomic
(
child
);
err
=
write_one_alias
(
sb
,
ino
,
bix
,
level
,
pos
,
val
);
err
=
write_one_alias
(
sb
,
ino
,
bix
,
level
,
pos
,
val
);
if
(
err
)
if
(
err
)
return
err
;
return
err
;
...
@@ -673,9 +673,9 @@ static void alloc_indirect_block(struct inode *inode, struct page *page,
...
@@ -673,9 +673,9 @@ static void alloc_indirect_block(struct inode *inode, struct page *page,
alloc_data_block
(
inode
,
page
);
alloc_data_block
(
inode
,
page
);
block
=
logfs_block
(
page
);
block
=
logfs_block
(
page
);
array
=
kmap_atomic
(
page
,
KM_USER0
);
array
=
kmap_atomic
(
page
);
initialize_block_counters
(
page
,
block
,
array
,
page_is_empty
);
initialize_block_counters
(
page
,
block
,
array
,
page_is_empty
);
kunmap_atomic
(
array
,
KM_USER0
);
kunmap_atomic
(
array
);
}
}
static
void
block_set_pointer
(
struct
page
*
page
,
int
index
,
u64
ptr
)
static
void
block_set_pointer
(
struct
page
*
page
,
int
index
,
u64
ptr
)
...
@@ -685,10 +685,10 @@ static void block_set_pointer(struct page *page, int index, u64 ptr)
...
@@ -685,10 +685,10 @@ static void block_set_pointer(struct page *page, int index, u64 ptr)
u64
oldptr
;
u64
oldptr
;
BUG_ON
(
!
block
);
BUG_ON
(
!
block
);
array
=
kmap_atomic
(
page
,
KM_USER0
);
array
=
kmap_atomic
(
page
);
oldptr
=
be64_to_cpu
(
array
[
index
]);
oldptr
=
be64_to_cpu
(
array
[
index
]);
array
[
index
]
=
cpu_to_be64
(
ptr
);
array
[
index
]
=
cpu_to_be64
(
ptr
);
kunmap_atomic
(
array
,
KM_USER0
);
kunmap_atomic
(
array
);
SetPageUptodate
(
page
);
SetPageUptodate
(
page
);
block
->
full
+=
!!
(
ptr
&
LOGFS_FULLY_POPULATED
)
block
->
full
+=
!!
(
ptr
&
LOGFS_FULLY_POPULATED
)
...
@@ -701,9 +701,9 @@ static u64 block_get_pointer(struct page *page, int index)
...
@@ -701,9 +701,9 @@ static u64 block_get_pointer(struct page *page, int index)
__be64
*
block
;
__be64
*
block
;
u64
ptr
;
u64
ptr
;
block
=
kmap_atomic
(
page
,
KM_USER0
);
block
=
kmap_atomic
(
page
);
ptr
=
be64_to_cpu
(
block
[
index
]);
ptr
=
be64_to_cpu
(
block
[
index
]);
kunmap_atomic
(
block
,
KM_USER0
);
kunmap_atomic
(
block
);
return
ptr
;
return
ptr
;
}
}
...
@@ -850,7 +850,7 @@ static u64 seek_holedata_loop(struct inode *inode, u64 bix, int data)
...
@@ -850,7 +850,7 @@ static u64 seek_holedata_loop(struct inode *inode, u64 bix, int data)
}
}
slot
=
get_bits
(
bix
,
SUBLEVEL
(
level
));
slot
=
get_bits
(
bix
,
SUBLEVEL
(
level
));
rblock
=
kmap_atomic
(
page
,
KM_USER0
);
rblock
=
kmap_atomic
(
page
);
while
(
slot
<
LOGFS_BLOCK_FACTOR
)
{
while
(
slot
<
LOGFS_BLOCK_FACTOR
)
{
if
(
data
&&
(
rblock
[
slot
]
!=
0
))
if
(
data
&&
(
rblock
[
slot
]
!=
0
))
break
;
break
;
...
@@ -861,12 +861,12 @@ static u64 seek_holedata_loop(struct inode *inode, u64 bix, int data)
...
@@ -861,12 +861,12 @@ static u64 seek_holedata_loop(struct inode *inode, u64 bix, int data)
bix
&=
~
(
increment
-
1
);
bix
&=
~
(
increment
-
1
);
}
}
if
(
slot
>=
LOGFS_BLOCK_FACTOR
)
{
if
(
slot
>=
LOGFS_BLOCK_FACTOR
)
{
kunmap_atomic
(
rblock
,
KM_USER0
);
kunmap_atomic
(
rblock
);
logfs_put_read_page
(
page
);
logfs_put_read_page
(
page
);
return
bix
;
return
bix
;
}
}
bofs
=
be64_to_cpu
(
rblock
[
slot
]);
bofs
=
be64_to_cpu
(
rblock
[
slot
]);
kunmap_atomic
(
rblock
,
KM_USER0
);
kunmap_atomic
(
rblock
);
logfs_put_read_page
(
page
);
logfs_put_read_page
(
page
);
if
(
!
bofs
)
{
if
(
!
bofs
)
{
BUG_ON
(
data
);
BUG_ON
(
data
);
...
@@ -1961,9 +1961,9 @@ int logfs_read_inode(struct inode *inode)
...
@@ -1961,9 +1961,9 @@ int logfs_read_inode(struct inode *inode)
if
(
IS_ERR
(
page
))
if
(
IS_ERR
(
page
))
return
PTR_ERR
(
page
);
return
PTR_ERR
(
page
);
di
=
kmap_atomic
(
page
,
KM_USER0
);
di
=
kmap_atomic
(
page
);
logfs_disk_to_inode
(
di
,
inode
);
logfs_disk_to_inode
(
di
,
inode
);
kunmap_atomic
(
di
,
KM_USER0
);
kunmap_atomic
(
di
);
move_page_to_inode
(
inode
,
page
);
move_page_to_inode
(
inode
,
page
);
page_cache_release
(
page
);
page_cache_release
(
page
);
return
0
;
return
0
;
...
@@ -1982,9 +1982,9 @@ static struct page *inode_to_page(struct inode *inode)
...
@@ -1982,9 +1982,9 @@ static struct page *inode_to_page(struct inode *inode)
if
(
!
page
)
if
(
!
page
)
return
NULL
;
return
NULL
;
di
=
kmap_atomic
(
page
,
KM_USER0
);
di
=
kmap_atomic
(
page
);
logfs_inode_to_disk
(
inode
,
di
);
logfs_inode_to_disk
(
inode
,
di
);
kunmap_atomic
(
di
,
KM_USER0
);
kunmap_atomic
(
di
);
move_inode_to_page
(
page
,
inode
);
move_inode_to_page
(
page
,
inode
);
return
page
;
return
page
;
}
}
...
@@ -2041,13 +2041,13 @@ static void logfs_mod_segment_entry(struct super_block *sb, u32 segno,
...
@@ -2041,13 +2041,13 @@ static void logfs_mod_segment_entry(struct super_block *sb, u32 segno,
if
(
write
)
if
(
write
)
alloc_indirect_block
(
inode
,
page
,
0
);
alloc_indirect_block
(
inode
,
page
,
0
);
se
=
kmap_atomic
(
page
,
KM_USER0
);
se
=
kmap_atomic
(
page
);
change_se
(
se
+
child_no
,
arg
);
change_se
(
se
+
child_no
,
arg
);
if
(
write
)
{
if
(
write
)
{
logfs_set_alias
(
sb
,
logfs_block
(
page
),
child_no
);
logfs_set_alias
(
sb
,
logfs_block
(
page
),
child_no
);
BUG_ON
((
int
)
be32_to_cpu
(
se
[
child_no
].
valid
)
>
super
->
s_segsize
);
BUG_ON
((
int
)
be32_to_cpu
(
se
[
child_no
].
valid
)
>
super
->
s_segsize
);
}
}
kunmap_atomic
(
se
,
KM_USER0
);
kunmap_atomic
(
se
);
logfs_put_write_page
(
page
);
logfs_put_write_page
(
page
);
}
}
...
@@ -2245,10 +2245,10 @@ int logfs_inode_write(struct inode *inode, const void *buf, size_t count,
...
@@ -2245,10 +2245,10 @@ int logfs_inode_write(struct inode *inode, const void *buf, size_t count,
if
(
!
page
)
if
(
!
page
)
return
-
ENOMEM
;
return
-
ENOMEM
;
pagebuf
=
kmap_atomic
(
page
,
KM_USER0
);
pagebuf
=
kmap_atomic
(
page
);
memcpy
(
pagebuf
,
buf
,
count
);
memcpy
(
pagebuf
,
buf
,
count
);
flush_dcache_page
(
page
);
flush_dcache_page
(
page
);
kunmap_atomic
(
pagebuf
,
KM_USER0
);
kunmap_atomic
(
pagebuf
);
if
(
i_size_read
(
inode
)
<
pos
+
LOGFS_BLOCKSIZE
)
if
(
i_size_read
(
inode
)
<
pos
+
LOGFS_BLOCKSIZE
)
i_size_write
(
inode
,
pos
+
LOGFS_BLOCKSIZE
);
i_size_write
(
inode
,
pos
+
LOGFS_BLOCKSIZE
);
...
...
fs/logfs/segment.c
浏览文件 @
50bc9b65
...
@@ -543,9 +543,9 @@ void move_page_to_btree(struct page *page)
...
@@ -543,9 +543,9 @@ void move_page_to_btree(struct page *page)
BUG_ON
(
!
item
);
/* mempool empty */
BUG_ON
(
!
item
);
/* mempool empty */
memset
(
item
,
0
,
sizeof
(
*
item
));
memset
(
item
,
0
,
sizeof
(
*
item
));
child
=
kmap_atomic
(
page
,
KM_USER0
);
child
=
kmap_atomic
(
page
);
item
->
val
=
child
[
pos
];
item
->
val
=
child
[
pos
];
kunmap_atomic
(
child
,
KM_USER0
);
kunmap_atomic
(
child
);
item
->
child_no
=
pos
;
item
->
child_no
=
pos
;
list_add
(
&
item
->
list
,
&
block
->
item_list
);
list_add
(
&
item
->
list
,
&
block
->
item_list
);
}
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录