Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
kernel_linux
提交
cc56c33e
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看板
提交
cc56c33e
编写于
12月 11, 2017
作者:
J
Jeff Layton
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
ocfs2: convert to new i_version API
Signed-off-by:
N
Jeff Layton
<
jlayton@redhat.com
>
Reviewed-by:
N
Jan Kara
<
jack@suse.cz
>
上级
1f15a550
变更
4
显示空白变更内容
内联
并排
Showing
4 changed file
with
14 addition
and
10 deletion
+14
-10
fs/ocfs2/dir.c
fs/ocfs2/dir.c
+8
-7
fs/ocfs2/inode.c
fs/ocfs2/inode.c
+2
-1
fs/ocfs2/namei.c
fs/ocfs2/namei.c
+2
-1
fs/ocfs2/quota_global.c
fs/ocfs2/quota_global.c
+2
-1
未找到文件。
fs/ocfs2/dir.c
浏览文件 @
cc56c33e
...
@@ -42,6 +42,7 @@
...
@@ -42,6 +42,7 @@
#include <linux/highmem.h>
#include <linux/highmem.h>
#include <linux/quotaops.h>
#include <linux/quotaops.h>
#include <linux/sort.h>
#include <linux/sort.h>
#include <linux/iversion.h>
#include <cluster/masklog.h>
#include <cluster/masklog.h>
...
@@ -1174,7 +1175,7 @@ static int __ocfs2_delete_entry(handle_t *handle, struct inode *dir,
...
@@ -1174,7 +1175,7 @@ static int __ocfs2_delete_entry(handle_t *handle, struct inode *dir,
le16_add_cpu
(
&
pde
->
rec_len
,
le16_add_cpu
(
&
pde
->
rec_len
,
le16_to_cpu
(
de
->
rec_len
));
le16_to_cpu
(
de
->
rec_len
));
de
->
inode
=
0
;
de
->
inode
=
0
;
dir
->
i_version
++
;
inode_inc_iversion
(
dir
)
;
ocfs2_journal_dirty
(
handle
,
bh
);
ocfs2_journal_dirty
(
handle
,
bh
);
goto
bail
;
goto
bail
;
}
}
...
@@ -1729,7 +1730,7 @@ int __ocfs2_add_entry(handle_t *handle,
...
@@ -1729,7 +1730,7 @@ int __ocfs2_add_entry(handle_t *handle,
if
(
ocfs2_dir_indexed
(
dir
))
if
(
ocfs2_dir_indexed
(
dir
))
ocfs2_recalc_free_list
(
dir
,
handle
,
lookup
);
ocfs2_recalc_free_list
(
dir
,
handle
,
lookup
);
dir
->
i_version
++
;
inode_inc_iversion
(
dir
)
;
ocfs2_journal_dirty
(
handle
,
insert_bh
);
ocfs2_journal_dirty
(
handle
,
insert_bh
);
retval
=
0
;
retval
=
0
;
goto
bail
;
goto
bail
;
...
@@ -1775,7 +1776,7 @@ static int ocfs2_dir_foreach_blk_id(struct inode *inode,
...
@@ -1775,7 +1776,7 @@ static int ocfs2_dir_foreach_blk_id(struct inode *inode,
* readdir(2), then we might be pointing to an invalid
* readdir(2), then we might be pointing to an invalid
* dirent right now. Scan from the start of the block
* dirent right now. Scan from the start of the block
* to make sure. */
* to make sure. */
if
(
*
f_version
!=
inode
->
i_version
)
{
if
(
inode_cmp_iversion
(
inode
,
*
f_version
)
)
{
for
(
i
=
0
;
i
<
i_size_read
(
inode
)
&&
i
<
offset
;
)
{
for
(
i
=
0
;
i
<
i_size_read
(
inode
)
&&
i
<
offset
;
)
{
de
=
(
struct
ocfs2_dir_entry
*
)
de
=
(
struct
ocfs2_dir_entry
*
)
(
data
->
id_data
+
i
);
(
data
->
id_data
+
i
);
...
@@ -1791,7 +1792,7 @@ static int ocfs2_dir_foreach_blk_id(struct inode *inode,
...
@@ -1791,7 +1792,7 @@ static int ocfs2_dir_foreach_blk_id(struct inode *inode,
i
+=
le16_to_cpu
(
de
->
rec_len
);
i
+=
le16_to_cpu
(
de
->
rec_len
);
}
}
ctx
->
pos
=
offset
=
i
;
ctx
->
pos
=
offset
=
i
;
*
f_version
=
inode
->
i_version
;
*
f_version
=
inode
_query_iversion
(
inode
)
;
}
}
de
=
(
struct
ocfs2_dir_entry
*
)
(
data
->
id_data
+
ctx
->
pos
);
de
=
(
struct
ocfs2_dir_entry
*
)
(
data
->
id_data
+
ctx
->
pos
);
...
@@ -1869,7 +1870,7 @@ static int ocfs2_dir_foreach_blk_el(struct inode *inode,
...
@@ -1869,7 +1870,7 @@ static int ocfs2_dir_foreach_blk_el(struct inode *inode,
* readdir(2), then we might be pointing to an invalid
* readdir(2), then we might be pointing to an invalid
* dirent right now. Scan from the start of the block
* dirent right now. Scan from the start of the block
* to make sure. */
* to make sure. */
if
(
*
f_version
!=
inode
->
i_version
)
{
if
(
inode_cmp_iversion
(
inode
,
*
f_version
)
)
{
for
(
i
=
0
;
i
<
sb
->
s_blocksize
&&
i
<
offset
;
)
{
for
(
i
=
0
;
i
<
sb
->
s_blocksize
&&
i
<
offset
;
)
{
de
=
(
struct
ocfs2_dir_entry
*
)
(
bh
->
b_data
+
i
);
de
=
(
struct
ocfs2_dir_entry
*
)
(
bh
->
b_data
+
i
);
/* It's too expensive to do a full
/* It's too expensive to do a full
...
@@ -1886,7 +1887,7 @@ static int ocfs2_dir_foreach_blk_el(struct inode *inode,
...
@@ -1886,7 +1887,7 @@ static int ocfs2_dir_foreach_blk_el(struct inode *inode,
offset
=
i
;
offset
=
i
;
ctx
->
pos
=
(
ctx
->
pos
&
~
(
sb
->
s_blocksize
-
1
))
ctx
->
pos
=
(
ctx
->
pos
&
~
(
sb
->
s_blocksize
-
1
))
|
offset
;
|
offset
;
*
f_version
=
inode
->
i_version
;
*
f_version
=
inode
_query_iversion
(
inode
)
;
}
}
while
(
ctx
->
pos
<
i_size_read
(
inode
)
while
(
ctx
->
pos
<
i_size_read
(
inode
)
...
@@ -1940,7 +1941,7 @@ static int ocfs2_dir_foreach_blk(struct inode *inode, u64 *f_version,
...
@@ -1940,7 +1941,7 @@ static int ocfs2_dir_foreach_blk(struct inode *inode, u64 *f_version,
*/
*/
int
ocfs2_dir_foreach
(
struct
inode
*
inode
,
struct
dir_context
*
ctx
)
int
ocfs2_dir_foreach
(
struct
inode
*
inode
,
struct
dir_context
*
ctx
)
{
{
u64
version
=
inode
->
i_version
;
u64
version
=
inode
_query_iversion
(
inode
)
;
ocfs2_dir_foreach_blk
(
inode
,
&
version
,
ctx
,
true
);
ocfs2_dir_foreach_blk
(
inode
,
&
version
,
ctx
,
true
);
return
0
;
return
0
;
}
}
...
...
fs/ocfs2/inode.c
浏览文件 @
cc56c33e
...
@@ -28,6 +28,7 @@
...
@@ -28,6 +28,7 @@
#include <linux/highmem.h>
#include <linux/highmem.h>
#include <linux/pagemap.h>
#include <linux/pagemap.h>
#include <linux/quotaops.h>
#include <linux/quotaops.h>
#include <linux/iversion.h>
#include <asm/byteorder.h>
#include <asm/byteorder.h>
...
@@ -302,7 +303,7 @@ void ocfs2_populate_inode(struct inode *inode, struct ocfs2_dinode *fe,
...
@@ -302,7 +303,7 @@ void ocfs2_populate_inode(struct inode *inode, struct ocfs2_dinode *fe,
OCFS2_I
(
inode
)
->
ip_attr
=
le32_to_cpu
(
fe
->
i_attr
);
OCFS2_I
(
inode
)
->
ip_attr
=
le32_to_cpu
(
fe
->
i_attr
);
OCFS2_I
(
inode
)
->
ip_dyn_features
=
le16_to_cpu
(
fe
->
i_dyn_features
);
OCFS2_I
(
inode
)
->
ip_dyn_features
=
le16_to_cpu
(
fe
->
i_dyn_features
);
inode
->
i_version
=
1
;
inode
_set_iversion
(
inode
,
1
)
;
inode
->
i_generation
=
le32_to_cpu
(
fe
->
i_generation
);
inode
->
i_generation
=
le32_to_cpu
(
fe
->
i_generation
);
inode
->
i_rdev
=
huge_decode_dev
(
le64_to_cpu
(
fe
->
id1
.
dev1
.
i_rdev
));
inode
->
i_rdev
=
huge_decode_dev
(
le64_to_cpu
(
fe
->
id1
.
dev1
.
i_rdev
));
inode
->
i_mode
=
le16_to_cpu
(
fe
->
i_mode
);
inode
->
i_mode
=
le16_to_cpu
(
fe
->
i_mode
);
...
...
fs/ocfs2/namei.c
浏览文件 @
cc56c33e
...
@@ -41,6 +41,7 @@
...
@@ -41,6 +41,7 @@
#include <linux/slab.h>
#include <linux/slab.h>
#include <linux/highmem.h>
#include <linux/highmem.h>
#include <linux/quotaops.h>
#include <linux/quotaops.h>
#include <linux/iversion.h>
#include <cluster/masklog.h>
#include <cluster/masklog.h>
...
@@ -1520,7 +1521,7 @@ static int ocfs2_rename(struct inode *old_dir,
...
@@ -1520,7 +1521,7 @@ static int ocfs2_rename(struct inode *old_dir,
mlog_errno
(
status
);
mlog_errno
(
status
);
goto
bail
;
goto
bail
;
}
}
new_dir
->
i_version
++
;
inode_inc_iversion
(
new_dir
)
;
if
(
S_ISDIR
(
new_inode
->
i_mode
))
if
(
S_ISDIR
(
new_inode
->
i_mode
))
ocfs2_set_links_count
(
newfe
,
0
);
ocfs2_set_links_count
(
newfe
,
0
);
...
...
fs/ocfs2/quota_global.c
浏览文件 @
cc56c33e
...
@@ -12,6 +12,7 @@
...
@@ -12,6 +12,7 @@
#include <linux/writeback.h>
#include <linux/writeback.h>
#include <linux/workqueue.h>
#include <linux/workqueue.h>
#include <linux/llist.h>
#include <linux/llist.h>
#include <linux/iversion.h>
#include <cluster/masklog.h>
#include <cluster/masklog.h>
...
@@ -289,7 +290,7 @@ ssize_t ocfs2_quota_write(struct super_block *sb, int type,
...
@@ -289,7 +290,7 @@ ssize_t ocfs2_quota_write(struct super_block *sb, int type,
mlog_errno
(
err
);
mlog_errno
(
err
);
return
err
;
return
err
;
}
}
gqinode
->
i_version
++
;
inode_inc_iversion
(
gqinode
)
;
ocfs2_mark_inode_dirty
(
handle
,
gqinode
,
oinfo
->
dqi_gqi_bh
);
ocfs2_mark_inode_dirty
(
handle
,
gqinode
,
oinfo
->
dqi_gqi_bh
);
return
len
;
return
len
;
}
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录