Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
kernel_linux
提交
2a4ad589
K
kernel_linux
项目概览
OpenHarmony
/
kernel_linux
上一次同步 4 年多
通知
15
Star
8
Fork
2
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
K
kernel_linux
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
2a4ad589
编写于
5月 20, 2016
作者:
D
Dave Chinner
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'xfs-4.7-misc-fixes' into for-next
上级
a7792aad
6e3e6d55
变更
10
隐藏空白更改
内联
并排
Showing
10 changed file
with
32 addition
and
29 deletion
+32
-29
fs/xfs/kmem.c
fs/xfs/kmem.c
+15
-11
fs/xfs/kmem.h
fs/xfs/kmem.h
+1
-1
fs/xfs/libxfs/xfs_inode_fork.c
fs/xfs/libxfs/xfs_inode_fork.c
+3
-7
fs/xfs/xfs_dquot.c
fs/xfs/xfs_dquot.c
+1
-1
fs/xfs/xfs_inode.c
fs/xfs/xfs_inode.c
+1
-1
fs/xfs/xfs_inode_item.c
fs/xfs/xfs_inode_item.c
+2
-0
fs/xfs/xfs_log.c
fs/xfs/xfs_log.c
+2
-2
fs/xfs/xfs_log_recover.c
fs/xfs/xfs_log_recover.c
+1
-1
fs/xfs/xfs_mount.c
fs/xfs/xfs_mount.c
+0
-1
fs/xfs/xfs_trace.h
fs/xfs/xfs_trace.h
+6
-4
未找到文件。
fs/xfs/kmem.c
浏览文件 @
2a4ad589
...
...
@@ -93,19 +93,23 @@ kmem_zalloc_large(size_t size, xfs_km_flags_t flags)
}
void
*
kmem_realloc
(
const
void
*
ptr
,
size_t
newsize
,
size_t
oldsize
,
xfs_km_flags_t
flags
)
kmem_realloc
(
const
void
*
old
,
size_t
newsize
,
xfs_km_flags_t
flags
)
{
void
*
new
;
int
retries
=
0
;
gfp_t
lflags
=
kmem_flags_convert
(
flags
);
void
*
ptr
;
new
=
kmem_alloc
(
newsize
,
flags
);
if
(
ptr
)
{
if
(
new
)
memcpy
(
new
,
ptr
,
((
oldsize
<
newsize
)
?
oldsize
:
newsize
));
kmem_free
(
ptr
);
}
return
new
;
do
{
ptr
=
krealloc
(
old
,
newsize
,
lflags
);
if
(
ptr
||
(
flags
&
(
KM_MAYFAIL
|
KM_NOSLEEP
)))
return
ptr
;
if
(
!
(
++
retries
%
100
))
xfs_err
(
NULL
,
"%s(%u) possible memory allocation deadlock size %zu in %s (mode:0x%x)"
,
current
->
comm
,
current
->
pid
,
newsize
,
__func__
,
lflags
);
congestion_wait
(
BLK_RW_ASYNC
,
HZ
/
50
);
}
while
(
1
);
}
void
*
...
...
fs/xfs/kmem.h
浏览文件 @
2a4ad589
...
...
@@ -62,7 +62,7 @@ kmem_flags_convert(xfs_km_flags_t flags)
extern
void
*
kmem_alloc
(
size_t
,
xfs_km_flags_t
);
extern
void
*
kmem_zalloc_large
(
size_t
size
,
xfs_km_flags_t
);
extern
void
*
kmem_realloc
(
const
void
*
,
size_t
,
size_t
,
xfs_km_flags_t
);
extern
void
*
kmem_realloc
(
const
void
*
,
size_t
,
xfs_km_flags_t
);
static
inline
void
kmem_free
(
const
void
*
ptr
)
{
kvfree
(
ptr
);
...
...
fs/xfs/libxfs/xfs_inode_fork.c
浏览文件 @
2a4ad589
...
...
@@ -542,7 +542,6 @@ xfs_iroot_realloc(
new_max
=
cur_max
+
rec_diff
;
new_size
=
XFS_BMAP_BROOT_SPACE_CALC
(
mp
,
new_max
);
ifp
->
if_broot
=
kmem_realloc
(
ifp
->
if_broot
,
new_size
,
XFS_BMAP_BROOT_SPACE_CALC
(
mp
,
cur_max
),
KM_SLEEP
|
KM_NOFS
);
op
=
(
char
*
)
XFS_BMAP_BROOT_PTR_ADDR
(
mp
,
ifp
->
if_broot
,
1
,
ifp
->
if_broot_bytes
);
...
...
@@ -686,7 +685,6 @@ xfs_idata_realloc(
ifp
->
if_u1
.
if_data
=
kmem_realloc
(
ifp
->
if_u1
.
if_data
,
real_size
,
ifp
->
if_real_bytes
,
KM_SLEEP
|
KM_NOFS
);
}
}
else
{
...
...
@@ -1402,8 +1400,7 @@ xfs_iext_realloc_direct(
if
(
rnew_size
!=
ifp
->
if_real_bytes
)
{
ifp
->
if_u1
.
if_extents
=
kmem_realloc
(
ifp
->
if_u1
.
if_extents
,
rnew_size
,
ifp
->
if_real_bytes
,
KM_NOFS
);
rnew_size
,
KM_NOFS
);
}
if
(
rnew_size
>
ifp
->
if_real_bytes
)
{
memset
(
&
ifp
->
if_u1
.
if_extents
[
ifp
->
if_bytes
/
...
...
@@ -1487,9 +1484,8 @@ xfs_iext_realloc_indirect(
if
(
new_size
==
0
)
{
xfs_iext_destroy
(
ifp
);
}
else
{
ifp
->
if_u1
.
if_ext_irec
=
(
xfs_ext_irec_t
*
)
kmem_realloc
(
ifp
->
if_u1
.
if_ext_irec
,
new_size
,
size
,
KM_NOFS
);
ifp
->
if_u1
.
if_ext_irec
=
kmem_realloc
(
ifp
->
if_u1
.
if_ext_irec
,
new_size
,
KM_NOFS
);
}
}
...
...
fs/xfs/xfs_dquot.c
浏览文件 @
2a4ad589
...
...
@@ -691,7 +691,7 @@ xfs_qm_dqread(
* end of the chunk, skip ahead to first id in next allocated chunk
* using the SEEK_DATA interface.
*/
int
static
int
xfs_dq_get_next_id
(
xfs_mount_t
*
mp
,
uint
type
,
...
...
fs/xfs/xfs_inode.c
浏览文件 @
2a4ad589
...
...
@@ -1030,7 +1030,7 @@ xfs_dir_ialloc(
tp
->
t_flags
&=
~
(
XFS_TRANS_DQ_DIRTY
);
}
code
=
xfs_trans_roll
(
&
tp
,
0
);
code
=
xfs_trans_roll
(
&
tp
,
NULL
);
if
(
committed
!=
NULL
)
*
committed
=
1
;
...
...
fs/xfs/xfs_inode_item.c
浏览文件 @
2a4ad589
...
...
@@ -479,6 +479,8 @@ STATIC uint
xfs_inode_item_push
(
struct
xfs_log_item
*
lip
,
struct
list_head
*
buffer_list
)
__releases
(
&
lip
->
li_ailp
->
xa_lock
)
__acquires
(
&
lip
->
li_ailp
->
xa_lock
)
{
struct
xfs_inode_log_item
*
iip
=
INODE_ITEM
(
lip
);
struct
xfs_inode
*
ip
=
iip
->
ili_inode
;
...
...
fs/xfs/xfs_log.c
浏览文件 @
2a4ad589
...
...
@@ -3325,7 +3325,7 @@ xfs_log_force(
{
int
error
;
trace_xfs_log_force
(
mp
,
0
);
trace_xfs_log_force
(
mp
,
0
,
_RET_IP_
);
error
=
_xfs_log_force
(
mp
,
flags
,
NULL
);
if
(
error
)
xfs_warn
(
mp
,
"%s: error %d returned."
,
__func__
,
error
);
...
...
@@ -3474,7 +3474,7 @@ xfs_log_force_lsn(
{
int
error
;
trace_xfs_log_force
(
mp
,
lsn
);
trace_xfs_log_force
(
mp
,
lsn
,
_RET_IP_
);
error
=
_xfs_log_force_lsn
(
mp
,
lsn
,
flags
,
NULL
);
if
(
error
)
xfs_warn
(
mp
,
"%s: error %d returned."
,
__func__
,
error
);
...
...
fs/xfs/xfs_log_recover.c
浏览文件 @
2a4ad589
...
...
@@ -3843,7 +3843,7 @@ xlog_recover_add_to_cont_trans(
old_ptr
=
item
->
ri_buf
[
item
->
ri_cnt
-
1
].
i_addr
;
old_len
=
item
->
ri_buf
[
item
->
ri_cnt
-
1
].
i_len
;
ptr
=
kmem_realloc
(
old_ptr
,
len
+
old_len
,
old_len
,
KM_SLEEP
);
ptr
=
kmem_realloc
(
old_ptr
,
len
+
old_len
,
KM_SLEEP
);
memcpy
(
&
ptr
[
old_len
],
dp
,
len
);
item
->
ri_buf
[
item
->
ri_cnt
-
1
].
i_len
+=
len
;
item
->
ri_buf
[
item
->
ri_cnt
-
1
].
i_addr
=
ptr
;
...
...
fs/xfs/xfs_mount.c
浏览文件 @
2a4ad589
...
...
@@ -89,7 +89,6 @@ xfs_uuid_mount(
if
(
hole
<
0
)
{
xfs_uuid_table
=
kmem_realloc
(
xfs_uuid_table
,
(
xfs_uuid_table_size
+
1
)
*
sizeof
(
*
xfs_uuid_table
),
xfs_uuid_table_size
*
sizeof
(
*
xfs_uuid_table
),
KM_SLEEP
);
hole
=
xfs_uuid_table_size
++
;
}
...
...
fs/xfs/xfs_trace.h
浏览文件 @
2a4ad589
...
...
@@ -1050,19 +1050,21 @@ DECLARE_EVENT_CLASS(xfs_log_item_class,
)
TRACE_EVENT
(
xfs_log_force
,
TP_PROTO
(
struct
xfs_mount
*
mp
,
xfs_lsn_t
lsn
),
TP_ARGS
(
mp
,
lsn
),
TP_PROTO
(
struct
xfs_mount
*
mp
,
xfs_lsn_t
lsn
,
unsigned
long
caller_ip
),
TP_ARGS
(
mp
,
lsn
,
caller_ip
),
TP_STRUCT__entry
(
__field
(
dev_t
,
dev
)
__field
(
xfs_lsn_t
,
lsn
)
__field
(
unsigned
long
,
caller_ip
)
),
TP_fast_assign
(
__entry
->
dev
=
mp
->
m_super
->
s_dev
;
__entry
->
lsn
=
lsn
;
__entry
->
caller_ip
=
caller_ip
;
),
TP_printk
(
"dev %d:%d lsn 0x%llx"
,
TP_printk
(
"dev %d:%d lsn 0x%llx
caller %ps
"
,
MAJOR
(
__entry
->
dev
),
MINOR
(
__entry
->
dev
),
__entry
->
lsn
)
__entry
->
lsn
,
(
void
*
)
__entry
->
caller_ip
)
)
#define DEFINE_LOG_ITEM_EVENT(name) \
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录