Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
xiphi1978
linux
提交
9d8b9ec4
L
linux
项目概览
xiphi1978
/
linux
通知
2
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
L
linux
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
9d8b9ec4
编写于
8月 01, 2011
作者:
T
Theodore Ts'o
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
ext4: use ext4_msg() instead of printk in mballoc
Signed-off-by:
N
"Theodore Ts'o"
<
tytso@mit.edu
>
上级
f18a5f21
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
42 addition
and
37 deletion
+42
-37
fs/ext4/mballoc.c
fs/ext4/mballoc.c
+42
-37
未找到文件。
fs/ext4/mballoc.c
浏览文件 @
9d8b9ec4
...
@@ -493,10 +493,11 @@ static void mb_cmp_bitmaps(struct ext4_buddy *e4b, void *bitmap)
...
@@ -493,10 +493,11 @@ static void mb_cmp_bitmaps(struct ext4_buddy *e4b, void *bitmap)
b2
=
(
unsigned
char
*
)
bitmap
;
b2
=
(
unsigned
char
*
)
bitmap
;
for
(
i
=
0
;
i
<
e4b
->
bd_sb
->
s_blocksize
;
i
++
)
{
for
(
i
=
0
;
i
<
e4b
->
bd_sb
->
s_blocksize
;
i
++
)
{
if
(
b1
[
i
]
!=
b2
[
i
])
{
if
(
b1
[
i
]
!=
b2
[
i
])
{
printk
(
KERN_ERR
"corruption in group %u "
ext4_msg
(
e4b
->
bd_sb
,
KERN_ERR
,
"at byte %u(%u): %x in copy != %x "
"corruption in group %u "
"on disk/prealloc
\n
"
,
"at byte %u(%u): %x in copy != %x "
e4b
->
bd_group
,
i
,
i
*
8
,
b1
[
i
],
b2
[
i
]);
"on disk/prealloc"
,
e4b
->
bd_group
,
i
,
i
*
8
,
b1
[
i
],
b2
[
i
]);
BUG
();
BUG
();
}
}
}
}
...
@@ -2224,8 +2225,8 @@ int ext4_mb_add_groupinfo(struct super_block *sb, ext4_group_t group,
...
@@ -2224,8 +2225,8 @@ int ext4_mb_add_groupinfo(struct super_block *sb, ext4_group_t group,
EXT4_DESC_PER_BLOCK_BITS
(
sb
);
EXT4_DESC_PER_BLOCK_BITS
(
sb
);
meta_group_info
=
kmalloc
(
metalen
,
GFP_KERNEL
);
meta_group_info
=
kmalloc
(
metalen
,
GFP_KERNEL
);
if
(
meta_group_info
==
NULL
)
{
if
(
meta_group_info
==
NULL
)
{
printk
(
KERN_ERR
"EXT4-fs: can't allocate mem for a
"
ext4_msg
(
sb
,
KERN_ERR
,
"EXT4-fs: can't allocate mem
"
"buddy group
\n
"
);
"for a buddy group
"
);
goto
exit_meta_group_info
;
goto
exit_meta_group_info
;
}
}
sbi
->
s_group_info
[
group
>>
EXT4_DESC_PER_BLOCK_BITS
(
sb
)]
=
sbi
->
s_group_info
[
group
>>
EXT4_DESC_PER_BLOCK_BITS
(
sb
)]
=
...
@@ -2238,7 +2239,7 @@ int ext4_mb_add_groupinfo(struct super_block *sb, ext4_group_t group,
...
@@ -2238,7 +2239,7 @@ int ext4_mb_add_groupinfo(struct super_block *sb, ext4_group_t group,
meta_group_info
[
i
]
=
kmem_cache_alloc
(
cachep
,
GFP_KERNEL
);
meta_group_info
[
i
]
=
kmem_cache_alloc
(
cachep
,
GFP_KERNEL
);
if
(
meta_group_info
[
i
]
==
NULL
)
{
if
(
meta_group_info
[
i
]
==
NULL
)
{
printk
(
KERN_ERR
"EXT4-fs: can't allocate buddy mem
\n
"
);
ext4_msg
(
sb
,
KERN_ERR
,
"EXT4-fs: can't allocate buddy mem
"
);
goto
exit_group_info
;
goto
exit_group_info
;
}
}
memset
(
meta_group_info
[
i
],
0
,
kmem_cache_size
(
cachep
));
memset
(
meta_group_info
[
i
],
0
,
kmem_cache_size
(
cachep
));
...
@@ -2333,12 +2334,12 @@ static int ext4_mb_init_backend(struct super_block *sb)
...
@@ -2333,12 +2334,12 @@ static int ext4_mb_init_backend(struct super_block *sb)
* So a two level scheme suffices for now. */
* So a two level scheme suffices for now. */
sbi
->
s_group_info
=
ext4_kvzalloc
(
array_size
,
GFP_KERNEL
);
sbi
->
s_group_info
=
ext4_kvzalloc
(
array_size
,
GFP_KERNEL
);
if
(
sbi
->
s_group_info
==
NULL
)
{
if
(
sbi
->
s_group_info
==
NULL
)
{
printk
(
KERN_ERR
"EXT4-fs: can't allocate buddy meta group
\n
"
);
ext4_msg
(
sb
,
KERN_ERR
,
"can't allocate buddy meta group
"
);
return
-
ENOMEM
;
return
-
ENOMEM
;
}
}
sbi
->
s_buddy_cache
=
new_inode
(
sb
);
sbi
->
s_buddy_cache
=
new_inode
(
sb
);
if
(
sbi
->
s_buddy_cache
==
NULL
)
{
if
(
sbi
->
s_buddy_cache
==
NULL
)
{
printk
(
KERN_ERR
"EXT4-fs: can't get new inode
\n
"
);
ext4_msg
(
sb
,
KERN_ERR
,
"can't get new inode
"
);
goto
err_freesgi
;
goto
err_freesgi
;
}
}
sbi
->
s_buddy_cache
->
i_ino
=
get_next_ino
();
sbi
->
s_buddy_cache
->
i_ino
=
get_next_ino
();
...
@@ -2346,8 +2347,7 @@ static int ext4_mb_init_backend(struct super_block *sb)
...
@@ -2346,8 +2347,7 @@ static int ext4_mb_init_backend(struct super_block *sb)
for
(
i
=
0
;
i
<
ngroups
;
i
++
)
{
for
(
i
=
0
;
i
<
ngroups
;
i
++
)
{
desc
=
ext4_get_group_desc
(
sb
,
i
,
NULL
);
desc
=
ext4_get_group_desc
(
sb
,
i
,
NULL
);
if
(
desc
==
NULL
)
{
if
(
desc
==
NULL
)
{
printk
(
KERN_ERR
ext4_msg
(
sb
,
KERN_ERR
,
"can't read descriptor %u"
,
i
);
"EXT4-fs: can't read descriptor %u
\n
"
,
i
);
goto
err_freebuddy
;
goto
err_freebuddy
;
}
}
if
(
ext4_mb_add_groupinfo
(
sb
,
i
,
desc
)
!=
0
)
if
(
ext4_mb_add_groupinfo
(
sb
,
i
,
desc
)
!=
0
)
...
@@ -2411,7 +2411,8 @@ static int ext4_groupinfo_create_slab(size_t size)
...
@@ -2411,7 +2411,8 @@ static int ext4_groupinfo_create_slab(size_t size)
mutex_unlock
(
&
ext4_grpinfo_slab_create_mutex
);
mutex_unlock
(
&
ext4_grpinfo_slab_create_mutex
);
if
(
!
cachep
)
{
if
(
!
cachep
)
{
printk
(
KERN_EMERG
"EXT4: no memory for groupinfo slab cache
\n
"
);
printk
(
KERN_EMERG
"EXT4-fs: no memory for groupinfo slab cache
\n
"
);
return
-
ENOMEM
;
return
-
ENOMEM
;
}
}
...
@@ -2566,25 +2567,25 @@ int ext4_mb_release(struct super_block *sb)
...
@@ -2566,25 +2567,25 @@ int ext4_mb_release(struct super_block *sb)
if
(
sbi
->
s_buddy_cache
)
if
(
sbi
->
s_buddy_cache
)
iput
(
sbi
->
s_buddy_cache
);
iput
(
sbi
->
s_buddy_cache
);
if
(
sbi
->
s_mb_stats
)
{
if
(
sbi
->
s_mb_stats
)
{
printk
(
KERN_INFO
ext4_msg
(
sb
,
KERN_INFO
,
"
EXT4-fs: mballoc: %u blocks %u reqs (%u success)
\n
"
,
"
mballoc: %u blocks %u reqs (%u success)
"
,
atomic_read
(
&
sbi
->
s_bal_allocated
),
atomic_read
(
&
sbi
->
s_bal_allocated
),
atomic_read
(
&
sbi
->
s_bal_reqs
),
atomic_read
(
&
sbi
->
s_bal_reqs
),
atomic_read
(
&
sbi
->
s_bal_success
));
atomic_read
(
&
sbi
->
s_bal_success
));
printk
(
KERN_INFO
ext4_msg
(
sb
,
KERN_INFO
,
"
EXT4-fs:
mballoc: %u extents scanned, %u goal hits, "
"mballoc: %u extents scanned, %u goal hits, "
"%u 2^N hits, %u breaks, %u lost
\n
"
,
"%u 2^N hits, %u breaks, %u lost"
,
atomic_read
(
&
sbi
->
s_bal_ex_scanned
),
atomic_read
(
&
sbi
->
s_bal_ex_scanned
),
atomic_read
(
&
sbi
->
s_bal_goals
),
atomic_read
(
&
sbi
->
s_bal_goals
),
atomic_read
(
&
sbi
->
s_bal_2orders
),
atomic_read
(
&
sbi
->
s_bal_2orders
),
atomic_read
(
&
sbi
->
s_bal_breaks
),
atomic_read
(
&
sbi
->
s_bal_breaks
),
atomic_read
(
&
sbi
->
s_mb_lost_chunks
));
atomic_read
(
&
sbi
->
s_mb_lost_chunks
));
printk
(
KERN_INFO
ext4_msg
(
sb
,
KERN_INFO
,
"
EXT4-fs: mballoc: %lu generated and it took %Lu
\n
"
,
"
mballoc: %lu generated and it took %Lu
"
,
sbi
->
s_mb_buddies_generated
,
sbi
->
s_mb_buddies_generated
,
sbi
->
s_mb_generation_time
);
sbi
->
s_mb_generation_time
);
printk
(
KERN_INFO
ext4_msg
(
sb
,
KERN_INFO
,
"
EXT4-fs: mballoc: %u preallocated, %u discarded
\n
"
,
"
mballoc: %u preallocated, %u discarded
"
,
atomic_read
(
&
sbi
->
s_mb_preallocated
),
atomic_read
(
&
sbi
->
s_mb_preallocated
),
atomic_read
(
&
sbi
->
s_mb_discarded
));
atomic_read
(
&
sbi
->
s_mb_discarded
));
}
}
...
@@ -3024,9 +3025,10 @@ ext4_mb_normalize_request(struct ext4_allocation_context *ac,
...
@@ -3024,9 +3025,10 @@ ext4_mb_normalize_request(struct ext4_allocation_context *ac,
if
(
start
+
size
<=
ac
->
ac_o_ex
.
fe_logical
&&
if
(
start
+
size
<=
ac
->
ac_o_ex
.
fe_logical
&&
start
>
ac
->
ac_o_ex
.
fe_logical
)
{
start
>
ac
->
ac_o_ex
.
fe_logical
)
{
printk
(
KERN_ERR
"start %lu, size %lu, fe_logical %lu
\n
"
,
ext4_msg
(
ac
->
ac_sb
,
KERN_ERR
,
(
unsigned
long
)
start
,
(
unsigned
long
)
size
,
"start %lu, size %lu, fe_logical %lu"
,
(
unsigned
long
)
ac
->
ac_o_ex
.
fe_logical
);
(
unsigned
long
)
start
,
(
unsigned
long
)
size
,
(
unsigned
long
)
ac
->
ac_o_ex
.
fe_logical
);
}
}
BUG_ON
(
start
+
size
<=
ac
->
ac_o_ex
.
fe_logical
&&
BUG_ON
(
start
+
size
<=
ac
->
ac_o_ex
.
fe_logical
&&
start
>
ac
->
ac_o_ex
.
fe_logical
);
start
>
ac
->
ac_o_ex
.
fe_logical
);
...
@@ -3607,10 +3609,11 @@ ext4_mb_release_inode_pa(struct ext4_buddy *e4b, struct buffer_head *bitmap_bh,
...
@@ -3607,10 +3609,11 @@ ext4_mb_release_inode_pa(struct ext4_buddy *e4b, struct buffer_head *bitmap_bh,
bit
=
next
+
1
;
bit
=
next
+
1
;
}
}
if
(
free
!=
pa
->
pa_free
)
{
if
(
free
!=
pa
->
pa_free
)
{
printk
(
KERN_CRIT
"pa %p: logic %lu, phys. %lu, len %lu
\n
"
,
ext4_msg
(
e4b
->
bd_sb
,
KERN_CRIT
,
pa
,
(
unsigned
long
)
pa
->
pa_lstart
,
"pa %p: logic %lu, phys. %lu, len %lu"
,
(
unsigned
long
)
pa
->
pa_pstart
,
pa
,
(
unsigned
long
)
pa
->
pa_lstart
,
(
unsigned
long
)
pa
->
pa_len
);
(
unsigned
long
)
pa
->
pa_pstart
,
(
unsigned
long
)
pa
->
pa_len
);
ext4_grp_locked_error
(
sb
,
group
,
0
,
0
,
"free %u, pa_free %u"
,
ext4_grp_locked_error
(
sb
,
group
,
0
,
0
,
"free %u, pa_free %u"
,
free
,
pa
->
pa_free
);
free
,
pa
->
pa_free
);
/*
/*
...
@@ -3798,7 +3801,8 @@ void ext4_discard_preallocations(struct inode *inode)
...
@@ -3798,7 +3801,8 @@ void ext4_discard_preallocations(struct inode *inode)
* use preallocation while we're discarding it */
* use preallocation while we're discarding it */
spin_unlock
(
&
pa
->
pa_lock
);
spin_unlock
(
&
pa
->
pa_lock
);
spin_unlock
(
&
ei
->
i_prealloc_lock
);
spin_unlock
(
&
ei
->
i_prealloc_lock
);
printk
(
KERN_ERR
"uh-oh! used pa while discarding
\n
"
);
ext4_msg
(
sb
,
KERN_ERR
,
"uh-oh! used pa while discarding"
);
WARN_ON
(
1
);
WARN_ON
(
1
);
schedule_timeout_uninterruptible
(
HZ
);
schedule_timeout_uninterruptible
(
HZ
);
goto
repeat
;
goto
repeat
;
...
@@ -3875,12 +3879,13 @@ static void ext4_mb_show_ac(struct ext4_allocation_context *ac)
...
@@ -3875,12 +3879,13 @@ static void ext4_mb_show_ac(struct ext4_allocation_context *ac)
(
EXT4_SB
(
sb
)
->
s_mount_flags
&
EXT4_MF_FS_ABORTED
))
(
EXT4_SB
(
sb
)
->
s_mount_flags
&
EXT4_MF_FS_ABORTED
))
return
;
return
;
printk
(
KERN_ERR
"EXT4-fs: Can't allocate:"
ext4_msg
(
ac
->
ac_sb
,
KERN_ERR
,
"EXT4-fs: Can't allocate:"
" Allocation context details:
\n
"
);
" Allocation context details:"
);
printk
(
KERN_ERR
"EXT4-fs: status %d flags %d
\n
"
,
ext4_msg
(
ac
->
ac_sb
,
KERN_ERR
,
"EXT4-fs: status %d flags %d
"
,
ac
->
ac_status
,
ac
->
ac_flags
);
ac
->
ac_status
,
ac
->
ac_flags
);
printk
(
KERN_ERR
"EXT4-fs: orig %lu/%lu/%lu@%lu, goal %lu/%lu/%lu@%lu, "
ext4_msg
(
ac
->
ac_sb
,
KERN_ERR
,
"EXT4-fs: orig %lu/%lu/%lu@%lu, "
"best %lu/%lu/%lu@%lu cr %d
\n
"
,
"goal %lu/%lu/%lu@%lu, "
"best %lu/%lu/%lu@%lu cr %d"
,
(
unsigned
long
)
ac
->
ac_o_ex
.
fe_group
,
(
unsigned
long
)
ac
->
ac_o_ex
.
fe_group
,
(
unsigned
long
)
ac
->
ac_o_ex
.
fe_start
,
(
unsigned
long
)
ac
->
ac_o_ex
.
fe_start
,
(
unsigned
long
)
ac
->
ac_o_ex
.
fe_len
,
(
unsigned
long
)
ac
->
ac_o_ex
.
fe_len
,
...
@@ -3894,9 +3899,9 @@ static void ext4_mb_show_ac(struct ext4_allocation_context *ac)
...
@@ -3894,9 +3899,9 @@ static void ext4_mb_show_ac(struct ext4_allocation_context *ac)
(
unsigned
long
)
ac
->
ac_b_ex
.
fe_len
,
(
unsigned
long
)
ac
->
ac_b_ex
.
fe_len
,
(
unsigned
long
)
ac
->
ac_b_ex
.
fe_logical
,
(
unsigned
long
)
ac
->
ac_b_ex
.
fe_logical
,
(
int
)
ac
->
ac_criteria
);
(
int
)
ac
->
ac_criteria
);
printk
(
KERN_ERR
"EXT4-fs: %lu scanned, %d found
\n
"
,
ac
->
ac_ex_scanned
,
ext4_msg
(
ac
->
ac_sb
,
KERN_ERR
,
"EXT4-fs: %lu scanned, %d found"
,
ac
->
ac_found
);
ac
->
ac_ex_scanned
,
ac
->
ac_found
);
printk
(
KERN_ERR
"EXT4-fs: groups:
\n
"
);
ext4_msg
(
ac
->
ac_sb
,
KERN_ERR
,
"EXT4-fs: groups:
"
);
ngroups
=
ext4_get_groups_count
(
sb
);
ngroups
=
ext4_get_groups_count
(
sb
);
for
(
i
=
0
;
i
<
ngroups
;
i
++
)
{
for
(
i
=
0
;
i
<
ngroups
;
i
++
)
{
struct
ext4_group_info
*
grp
=
ext4_get_group_info
(
sb
,
i
);
struct
ext4_group_info
*
grp
=
ext4_get_group_info
(
sb
,
i
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录