Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
Kernel
提交
e1d747d9
K
Kernel
项目概览
openeuler
/
Kernel
接近 2 年 前同步成功
通知
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看板
提交
e1d747d9
编写于
12月 11, 2017
作者:
J
Jeff Layton
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
ext2: convert to new i_version API
Signed-off-by:
N
Jeff Layton
<
jlayton@redhat.com
>
Reviewed-by:
N
Jan Kara
<
jack@suse.cz
>
上级
317bc947
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
8 addition
and
6 deletion
+8
-6
fs/ext2/dir.c
fs/ext2/dir.c
+5
-4
fs/ext2/super.c
fs/ext2/super.c
+3
-2
未找到文件。
fs/ext2/dir.c
浏览文件 @
e1d747d9
...
@@ -26,6 +26,7 @@
...
@@ -26,6 +26,7 @@
#include <linux/buffer_head.h>
#include <linux/buffer_head.h>
#include <linux/pagemap.h>
#include <linux/pagemap.h>
#include <linux/swap.h>
#include <linux/swap.h>
#include <linux/iversion.h>
typedef
struct
ext2_dir_entry_2
ext2_dirent
;
typedef
struct
ext2_dir_entry_2
ext2_dirent
;
...
@@ -92,7 +93,7 @@ static int ext2_commit_chunk(struct page *page, loff_t pos, unsigned len)
...
@@ -92,7 +93,7 @@ static int ext2_commit_chunk(struct page *page, loff_t pos, unsigned len)
struct
inode
*
dir
=
mapping
->
host
;
struct
inode
*
dir
=
mapping
->
host
;
int
err
=
0
;
int
err
=
0
;
dir
->
i_version
++
;
inode_inc_iversion
(
dir
)
;
block_write_end
(
NULL
,
mapping
,
pos
,
len
,
len
,
page
,
NULL
);
block_write_end
(
NULL
,
mapping
,
pos
,
len
,
len
,
page
,
NULL
);
if
(
pos
+
len
>
dir
->
i_size
)
{
if
(
pos
+
len
>
dir
->
i_size
)
{
...
@@ -293,7 +294,7 @@ ext2_readdir(struct file *file, struct dir_context *ctx)
...
@@ -293,7 +294,7 @@ ext2_readdir(struct file *file, struct dir_context *ctx)
unsigned
long
npages
=
dir_pages
(
inode
);
unsigned
long
npages
=
dir_pages
(
inode
);
unsigned
chunk_mask
=
~
(
ext2_chunk_size
(
inode
)
-
1
);
unsigned
chunk_mask
=
~
(
ext2_chunk_size
(
inode
)
-
1
);
unsigned
char
*
types
=
NULL
;
unsigned
char
*
types
=
NULL
;
int
need_revalidate
=
file
->
f_version
!=
inode
->
i_version
;
bool
need_revalidate
=
inode_cmp_iversion
(
inode
,
file
->
f_version
)
;
if
(
pos
>
inode
->
i_size
-
EXT2_DIR_REC_LEN
(
1
))
if
(
pos
>
inode
->
i_size
-
EXT2_DIR_REC_LEN
(
1
))
return
0
;
return
0
;
...
@@ -319,8 +320,8 @@ ext2_readdir(struct file *file, struct dir_context *ctx)
...
@@ -319,8 +320,8 @@ ext2_readdir(struct file *file, struct dir_context *ctx)
offset
=
ext2_validate_entry
(
kaddr
,
offset
,
chunk_mask
);
offset
=
ext2_validate_entry
(
kaddr
,
offset
,
chunk_mask
);
ctx
->
pos
=
(
n
<<
PAGE_SHIFT
)
+
offset
;
ctx
->
pos
=
(
n
<<
PAGE_SHIFT
)
+
offset
;
}
}
file
->
f_version
=
inode
->
i_version
;
file
->
f_version
=
inode
_query_iversion
(
inode
)
;
need_revalidate
=
0
;
need_revalidate
=
false
;
}
}
de
=
(
ext2_dirent
*
)(
kaddr
+
offset
);
de
=
(
ext2_dirent
*
)(
kaddr
+
offset
);
limit
=
kaddr
+
ext2_last_byte
(
inode
,
n
)
-
EXT2_DIR_REC_LEN
(
1
);
limit
=
kaddr
+
ext2_last_byte
(
inode
,
n
)
-
EXT2_DIR_REC_LEN
(
1
);
...
...
fs/ext2/super.c
浏览文件 @
e1d747d9
...
@@ -33,6 +33,7 @@
...
@@ -33,6 +33,7 @@
#include <linux/quotaops.h>
#include <linux/quotaops.h>
#include <linux/uaccess.h>
#include <linux/uaccess.h>
#include <linux/dax.h>
#include <linux/dax.h>
#include <linux/iversion.h>
#include "ext2.h"
#include "ext2.h"
#include "xattr.h"
#include "xattr.h"
#include "acl.h"
#include "acl.h"
...
@@ -184,7 +185,7 @@ static struct inode *ext2_alloc_inode(struct super_block *sb)
...
@@ -184,7 +185,7 @@ static struct inode *ext2_alloc_inode(struct super_block *sb)
if
(
!
ei
)
if
(
!
ei
)
return
NULL
;
return
NULL
;
ei
->
i_block_alloc_info
=
NULL
;
ei
->
i_block_alloc_info
=
NULL
;
ei
->
vfs_inode
.
i_version
=
1
;
inode_set_iversion
(
&
ei
->
vfs_inode
,
1
)
;
#ifdef CONFIG_QUOTA
#ifdef CONFIG_QUOTA
memset
(
&
ei
->
i_dquot
,
0
,
sizeof
(
ei
->
i_dquot
));
memset
(
&
ei
->
i_dquot
,
0
,
sizeof
(
ei
->
i_dquot
));
#endif
#endif
...
@@ -1569,7 +1570,7 @@ static ssize_t ext2_quota_write(struct super_block *sb, int type,
...
@@ -1569,7 +1570,7 @@ static ssize_t ext2_quota_write(struct super_block *sb, int type,
return
err
;
return
err
;
if
(
inode
->
i_size
<
off
+
len
-
towrite
)
if
(
inode
->
i_size
<
off
+
len
-
towrite
)
i_size_write
(
inode
,
off
+
len
-
towrite
);
i_size_write
(
inode
,
off
+
len
-
towrite
);
inode
->
i_version
++
;
inode
_inc_iversion
(
inode
)
;
inode
->
i_mtime
=
inode
->
i_ctime
=
current_time
(
inode
);
inode
->
i_mtime
=
inode
->
i_ctime
=
current_time
(
inode
);
mark_inode_dirty
(
inode
);
mark_inode_dirty
(
inode
);
return
len
-
towrite
;
return
len
-
towrite
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录