Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
Kernel
提交
f004fae0
K
Kernel
项目概览
openeuler
/
Kernel
大约 1 年 前同步成功
通知
5
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看板
体验新版 GitCode,发现更多精彩内容 >>
提交
f004fae0
编写于
2月 26, 2016
作者:
D
David Sterba
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'cleanups-4.6' into for-chris-4.6
上级
675d276b
f827ba9a
变更
16
隐藏空白更改
内联
并排
Showing
16 changed file
with
64 addition
and
89 deletion
+64
-89
fs/btrfs/backref.c
fs/btrfs/backref.c
+4
-8
fs/btrfs/ctree.h
fs/btrfs/ctree.h
+1
-2
fs/btrfs/delayed-inode.c
fs/btrfs/delayed-inode.c
+1
-2
fs/btrfs/delayed-ref.c
fs/btrfs/delayed-ref.c
+4
-8
fs/btrfs/disk-io.c
fs/btrfs/disk-io.c
+1
-2
fs/btrfs/extent-tree.c
fs/btrfs/extent-tree.c
+1
-1
fs/btrfs/extent_io.c
fs/btrfs/extent_io.c
+16
-21
fs/btrfs/extent_io.h
fs/btrfs/extent_io.h
+2
-3
fs/btrfs/extent_map.c
fs/btrfs/extent_map.c
+1
-2
fs/btrfs/file.c
fs/btrfs/file.c
+3
-4
fs/btrfs/inode.c
fs/btrfs/inode.c
+18
-22
fs/btrfs/ioctl.c
fs/btrfs/ioctl.c
+4
-8
fs/btrfs/ordered-data.c
fs/btrfs/ordered-data.c
+1
-2
fs/btrfs/root-tree.c
fs/btrfs/root-tree.c
+1
-1
fs/btrfs/transaction.c
fs/btrfs/transaction.c
+5
-2
fs/btrfs/xattr.c
fs/btrfs/xattr.c
+1
-1
未找到文件。
fs/btrfs/backref.c
浏览文件 @
f004fae0
...
...
@@ -148,8 +148,7 @@ int __init btrfs_prelim_ref_init(void)
void
btrfs_prelim_ref_exit
(
void
)
{
if
(
btrfs_prelim_ref_cache
)
kmem_cache_destroy
(
btrfs_prelim_ref_cache
);
kmem_cache_destroy
(
btrfs_prelim_ref_cache
);
}
/*
...
...
@@ -566,17 +565,14 @@ static void __merge_refs(struct list_head *head, int mode)
struct
__prelim_ref
*
pos2
=
pos1
,
*
tmp
;
list_for_each_entry_safe_continue
(
pos2
,
tmp
,
head
,
list
)
{
struct
__prelim_ref
*
xchg
,
*
ref1
=
pos1
,
*
ref2
=
pos2
;
struct
__prelim_ref
*
ref1
=
pos1
,
*
ref2
=
pos2
;
struct
extent_inode_elem
*
eie
;
if
(
!
ref_for_same_block
(
ref1
,
ref2
))
continue
;
if
(
mode
==
1
)
{
if
(
!
ref1
->
parent
&&
ref2
->
parent
)
{
xchg
=
ref1
;
ref1
=
ref2
;
ref2
=
xchg
;
}
if
(
!
ref1
->
parent
&&
ref2
->
parent
)
swap
(
ref1
,
ref2
);
}
else
{
if
(
ref1
->
parent
!=
ref2
->
parent
)
continue
;
...
...
fs/btrfs/ctree.h
浏览文件 @
f004fae0
...
...
@@ -3490,8 +3490,7 @@ u64 btrfs_csum_bytes_to_leaves(struct btrfs_root *root, u64 csum_bytes);
static
inline
u64
btrfs_calc_trans_metadata_size
(
struct
btrfs_root
*
root
,
unsigned
num_items
)
{
return
(
root
->
nodesize
+
root
->
nodesize
*
(
BTRFS_MAX_LEVEL
-
1
))
*
2
*
num_items
;
return
root
->
nodesize
*
BTRFS_MAX_LEVEL
*
2
*
num_items
;
}
/*
...
...
fs/btrfs/delayed-inode.c
浏览文件 @
f004fae0
...
...
@@ -43,8 +43,7 @@ int __init btrfs_delayed_inode_init(void)
void
btrfs_delayed_inode_exit
(
void
)
{
if
(
delayed_node_cache
)
kmem_cache_destroy
(
delayed_node_cache
);
kmem_cache_destroy
(
delayed_node_cache
);
}
static
inline
void
btrfs_init_delayed_node
(
...
...
fs/btrfs/delayed-ref.c
浏览文件 @
f004fae0
...
...
@@ -929,14 +929,10 @@ btrfs_find_delayed_ref_head(struct btrfs_trans_handle *trans, u64 bytenr)
void
btrfs_delayed_ref_exit
(
void
)
{
if
(
btrfs_delayed_ref_head_cachep
)
kmem_cache_destroy
(
btrfs_delayed_ref_head_cachep
);
if
(
btrfs_delayed_tree_ref_cachep
)
kmem_cache_destroy
(
btrfs_delayed_tree_ref_cachep
);
if
(
btrfs_delayed_data_ref_cachep
)
kmem_cache_destroy
(
btrfs_delayed_data_ref_cachep
);
if
(
btrfs_delayed_extent_op_cachep
)
kmem_cache_destroy
(
btrfs_delayed_extent_op_cachep
);
kmem_cache_destroy
(
btrfs_delayed_ref_head_cachep
);
kmem_cache_destroy
(
btrfs_delayed_tree_ref_cachep
);
kmem_cache_destroy
(
btrfs_delayed_data_ref_cachep
);
kmem_cache_destroy
(
btrfs_delayed_extent_op_cachep
);
}
int
btrfs_delayed_ref_init
(
void
)
...
...
fs/btrfs/disk-io.c
浏览文件 @
f004fae0
...
...
@@ -110,8 +110,7 @@ int __init btrfs_end_io_wq_init(void)
void
btrfs_end_io_wq_exit
(
void
)
{
if
(
btrfs_end_io_wq_cache
)
kmem_cache_destroy
(
btrfs_end_io_wq_cache
);
kmem_cache_destroy
(
btrfs_end_io_wq_cache
);
}
/*
...
...
fs/btrfs/extent-tree.c
浏览文件 @
f004fae0
...
...
@@ -7024,7 +7024,7 @@ btrfs_lock_cluster(struct btrfs_block_group_cache *block_group,
struct
btrfs_free_cluster
*
cluster
,
int
delalloc
)
{
struct
btrfs_block_group_cache
*
used_bg
;
struct
btrfs_block_group_cache
*
used_bg
=
NULL
;
bool
locked
=
false
;
again:
spin_lock
(
&
cluster
->
refill_lock
);
...
...
fs/btrfs/extent_io.c
浏览文件 @
f004fae0
...
...
@@ -206,10 +206,8 @@ void extent_io_exit(void)
* destroy caches.
*/
rcu_barrier
();
if
(
extent_state_cache
)
kmem_cache_destroy
(
extent_state_cache
);
if
(
extent_buffer_cache
)
kmem_cache_destroy
(
extent_buffer_cache
);
kmem_cache_destroy
(
extent_state_cache
);
kmem_cache_destroy
(
extent_buffer_cache
);
if
(
btrfs_bioset
)
bioset_free
(
btrfs_bioset
);
}
...
...
@@ -232,7 +230,7 @@ static struct extent_state *alloc_extent_state(gfp_t mask)
if
(
!
state
)
return
state
;
state
->
state
=
0
;
state
->
private
=
0
;
state
->
failrec
=
NULL
;
RB_CLEAR_NODE
(
&
state
->
rb_node
);
btrfs_leak_debug_add
(
&
state
->
leak_list
,
&
states
);
atomic_set
(
&
state
->
refs
,
1
);
...
...
@@ -1844,7 +1842,8 @@ u64 count_range_bits(struct extent_io_tree *tree,
* set the private field for a given byte offset in the tree. If there isn't
* an extent_state there already, this does nothing.
*/
static
int
set_state_private
(
struct
extent_io_tree
*
tree
,
u64
start
,
u64
private
)
static
noinline
int
set_state_failrec
(
struct
extent_io_tree
*
tree
,
u64
start
,
struct
io_failure_record
*
failrec
)
{
struct
rb_node
*
node
;
struct
extent_state
*
state
;
...
...
@@ -1865,13 +1864,14 @@ static int set_state_private(struct extent_io_tree *tree, u64 start, u64 private
ret
=
-
ENOENT
;
goto
out
;
}
state
->
private
=
private
;
state
->
failrec
=
failrec
;
out:
spin_unlock
(
&
tree
->
lock
);
return
ret
;
}
int
get_state_private
(
struct
extent_io_tree
*
tree
,
u64
start
,
u64
*
private
)
static
noinline
int
get_state_failrec
(
struct
extent_io_tree
*
tree
,
u64
start
,
struct
io_failure_record
**
failrec
)
{
struct
rb_node
*
node
;
struct
extent_state
*
state
;
...
...
@@ -1892,7 +1892,7 @@ int get_state_private(struct extent_io_tree *tree, u64 start, u64 *private)
ret
=
-
ENOENT
;
goto
out
;
}
*
private
=
state
->
private
;
*
failrec
=
state
->
failrec
;
out:
spin_unlock
(
&
tree
->
lock
);
return
ret
;
...
...
@@ -1972,7 +1972,7 @@ int free_io_failure(struct inode *inode, struct io_failure_record *rec)
int
err
=
0
;
struct
extent_io_tree
*
failure_tree
=
&
BTRFS_I
(
inode
)
->
io_failure_tree
;
set_state_
private
(
failure_tree
,
rec
->
start
,
0
);
set_state_
failrec
(
failure_tree
,
rec
->
start
,
NULL
);
ret
=
clear_extent_bits
(
failure_tree
,
rec
->
start
,
rec
->
start
+
rec
->
len
-
1
,
EXTENT_LOCKED
|
EXTENT_DIRTY
,
GFP_NOFS
);
...
...
@@ -2089,7 +2089,6 @@ int clean_io_failure(struct inode *inode, u64 start, struct page *page,
unsigned
int
pg_offset
)
{
u64
private
;
u64
private_failure
;
struct
io_failure_record
*
failrec
;
struct
btrfs_fs_info
*
fs_info
=
BTRFS_I
(
inode
)
->
root
->
fs_info
;
struct
extent_state
*
state
;
...
...
@@ -2102,12 +2101,11 @@ int clean_io_failure(struct inode *inode, u64 start, struct page *page,
if
(
!
ret
)
return
0
;
ret
=
get_state_
private
(
&
BTRFS_I
(
inode
)
->
io_failure_tree
,
start
,
&
private_failure
);
ret
=
get_state_
failrec
(
&
BTRFS_I
(
inode
)
->
io_failure_tree
,
start
,
&
failrec
);
if
(
ret
)
return
0
;
failrec
=
(
struct
io_failure_record
*
)(
unsigned
long
)
private_failure
;
BUG_ON
(
!
failrec
->
this_mirror
);
if
(
failrec
->
in_validation
)
{
...
...
@@ -2167,7 +2165,7 @@ void btrfs_free_io_failure_record(struct inode *inode, u64 start, u64 end)
next
=
next_state
(
state
);
failrec
=
(
struct
io_failure_record
*
)(
unsigned
long
)
state
->
private
;
failrec
=
state
->
failrec
;
free_extent_state
(
state
);
kfree
(
failrec
);
...
...
@@ -2177,10 +2175,9 @@ void btrfs_free_io_failure_record(struct inode *inode, u64 start, u64 end)
}
int
btrfs_get_io_failure_record
(
struct
inode
*
inode
,
u64
start
,
u64
end
,
struct
io_failure_record
**
failrec_ret
)
struct
io_failure_record
**
failrec_ret
)
{
struct
io_failure_record
*
failrec
;
u64
private
;
struct
extent_map
*
em
;
struct
extent_io_tree
*
failure_tree
=
&
BTRFS_I
(
inode
)
->
io_failure_tree
;
struct
extent_io_tree
*
tree
=
&
BTRFS_I
(
inode
)
->
io_tree
;
...
...
@@ -2188,7 +2185,7 @@ int btrfs_get_io_failure_record(struct inode *inode, u64 start, u64 end,
int
ret
;
u64
logical
;
ret
=
get_state_
private
(
failure_tree
,
start
,
&
private
);
ret
=
get_state_
failrec
(
failure_tree
,
start
,
&
failrec
);
if
(
ret
)
{
failrec
=
kzalloc
(
sizeof
(
*
failrec
),
GFP_NOFS
);
if
(
!
failrec
)
...
...
@@ -2237,8 +2234,7 @@ int btrfs_get_io_failure_record(struct inode *inode, u64 start, u64 end,
ret
=
set_extent_bits
(
failure_tree
,
start
,
end
,
EXTENT_LOCKED
|
EXTENT_DIRTY
,
GFP_NOFS
);
if
(
ret
>=
0
)
ret
=
set_state_private
(
failure_tree
,
start
,
(
u64
)(
unsigned
long
)
failrec
);
ret
=
set_state_failrec
(
failure_tree
,
start
,
failrec
);
/* set the bits in the inode's tree */
if
(
ret
>=
0
)
ret
=
set_extent_bits
(
tree
,
start
,
end
,
EXTENT_DAMAGED
,
...
...
@@ -2248,7 +2244,6 @@ int btrfs_get_io_failure_record(struct inode *inode, u64 start, u64 end,
return
ret
;
}
}
else
{
failrec
=
(
struct
io_failure_record
*
)(
unsigned
long
)
private
;
pr_debug
(
"Get IO Failure Record: (found) logical=%llu, start=%llu, len=%llu, validation=%d
\n
"
,
failrec
->
logical
,
failrec
->
start
,
failrec
->
len
,
failrec
->
in_validation
);
...
...
fs/btrfs/extent_io.h
浏览文件 @
f004fae0
...
...
@@ -61,6 +61,7 @@
struct
extent_state
;
struct
btrfs_root
;
struct
btrfs_io_bio
;
struct
io_failure_record
;
typedef
int
(
extent_submit_bio_hook_t
)(
struct
inode
*
inode
,
int
rw
,
struct
bio
*
bio
,
int
mirror_num
,
...
...
@@ -111,8 +112,7 @@ struct extent_state {
atomic_t
refs
;
unsigned
state
;
/* for use by the FS */
u64
private
;
struct
io_failure_record
*
failrec
;
#ifdef CONFIG_BTRFS_DEBUG
struct
list_head
leak_list
;
...
...
@@ -342,7 +342,6 @@ int extent_readpages(struct extent_io_tree *tree,
get_extent_t
get_extent
);
int
extent_fiemap
(
struct
inode
*
inode
,
struct
fiemap_extent_info
*
fieinfo
,
__u64
start
,
__u64
len
,
get_extent_t
*
get_extent
);
int
get_state_private
(
struct
extent_io_tree
*
tree
,
u64
start
,
u64
*
private
);
void
set_page_extent_mapped
(
struct
page
*
page
);
struct
extent_buffer
*
alloc_extent_buffer
(
struct
btrfs_fs_info
*
fs_info
,
...
...
fs/btrfs/extent_map.c
浏览文件 @
f004fae0
...
...
@@ -20,8 +20,7 @@ int __init extent_map_init(void)
void
extent_map_exit
(
void
)
{
if
(
extent_map_cache
)
kmem_cache_destroy
(
extent_map_cache
);
kmem_cache_destroy
(
extent_map_cache
);
}
/**
...
...
fs/btrfs/file.c
浏览文件 @
f004fae0
...
...
@@ -2569,7 +2569,7 @@ static int btrfs_punch_hole(struct inode *inode, loff_t offset, loff_t len)
goto
out_free
;
inode_inc_iversion
(
inode
);
inode
->
i_mtime
=
inode
->
i_ctime
=
CURRENT_TIME
;
inode
->
i_mtime
=
inode
->
i_ctime
=
current_fs_time
(
inode
->
i_sb
)
;
trans
->
block_rsv
=
&
root
->
fs_info
->
trans_block_rsv
;
ret
=
btrfs_update_inode
(
trans
,
root
,
inode
);
...
...
@@ -2819,7 +2819,7 @@ static long btrfs_fallocate(struct file *file, int mode,
if
(
IS_ERR
(
trans
))
{
ret
=
PTR_ERR
(
trans
);
}
else
{
inode
->
i_ctime
=
CURRENT_TIME
;
inode
->
i_ctime
=
current_fs_time
(
inode
->
i_sb
)
;
i_size_write
(
inode
,
actual_end
);
btrfs_ordered_update_i_size
(
inode
,
actual_end
,
NULL
);
ret
=
btrfs_update_inode
(
trans
,
root
,
inode
);
...
...
@@ -2964,8 +2964,7 @@ const struct file_operations btrfs_file_operations = {
void
btrfs_auto_defrag_exit
(
void
)
{
if
(
btrfs_inode_defrag_cachep
)
kmem_cache_destroy
(
btrfs_inode_defrag_cachep
);
kmem_cache_destroy
(
btrfs_inode_defrag_cachep
);
}
int
btrfs_auto_defrag_init
(
void
)
...
...
fs/btrfs/inode.c
浏览文件 @
f004fae0
...
...
@@ -4014,7 +4014,8 @@ static int __btrfs_unlink_inode(struct btrfs_trans_handle *trans,
btrfs_i_size_write
(
dir
,
dir
->
i_size
-
name_len
*
2
);
inode_inc_iversion
(
inode
);
inode_inc_iversion
(
dir
);
inode
->
i_ctime
=
dir
->
i_mtime
=
dir
->
i_ctime
=
CURRENT_TIME
;
inode
->
i_ctime
=
dir
->
i_mtime
=
dir
->
i_ctime
=
current_fs_time
(
inode
->
i_sb
);
ret
=
btrfs_update_inode
(
trans
,
root
,
dir
);
out:
return
ret
;
...
...
@@ -4157,7 +4158,7 @@ int btrfs_unlink_subvol(struct btrfs_trans_handle *trans,
btrfs_i_size_write
(
dir
,
dir
->
i_size
-
name_len
*
2
);
inode_inc_iversion
(
dir
);
dir
->
i_mtime
=
dir
->
i_ctime
=
CURRENT_TIME
;
dir
->
i_mtime
=
dir
->
i_ctime
=
current_fs_time
(
dir
->
i_sb
)
;
ret
=
btrfs_update_inode_fallback
(
trans
,
root
,
dir
);
if
(
ret
)
btrfs_abort_transaction
(
trans
,
root
,
ret
);
...
...
@@ -5602,7 +5603,7 @@ static struct inode *new_simple_dir(struct super_block *s,
inode
->
i_op
=
&
btrfs_dir_ro_inode_operations
;
inode
->
i_fop
=
&
simple_dir_operations
;
inode
->
i_mode
=
S_IFDIR
|
S_IRUGO
|
S_IWUSR
|
S_IXUGO
;
inode
->
i_mtime
=
CURRENT_TIME
;
inode
->
i_mtime
=
current_fs_time
(
inode
->
i_sb
)
;
inode
->
i_atime
=
inode
->
i_mtime
;
inode
->
i_ctime
=
inode
->
i_mtime
;
BTRFS_I
(
inode
)
->
i_otime
=
inode
->
i_mtime
;
...
...
@@ -6186,7 +6187,7 @@ static struct inode *btrfs_new_inode(struct btrfs_trans_handle *trans,
inode_init_owner
(
inode
,
dir
,
mode
);
inode_set_bytes
(
inode
,
0
);
inode
->
i_mtime
=
CURRENT_TIME
;
inode
->
i_mtime
=
current_fs_time
(
inode
->
i_sb
)
;
inode
->
i_atime
=
inode
->
i_mtime
;
inode
->
i_ctime
=
inode
->
i_mtime
;
BTRFS_I
(
inode
)
->
i_otime
=
inode
->
i_mtime
;
...
...
@@ -6299,7 +6300,8 @@ int btrfs_add_link(struct btrfs_trans_handle *trans,
btrfs_i_size_write
(
parent_inode
,
parent_inode
->
i_size
+
name_len
*
2
);
inode_inc_iversion
(
parent_inode
);
parent_inode
->
i_mtime
=
parent_inode
->
i_ctime
=
CURRENT_TIME
;
parent_inode
->
i_mtime
=
parent_inode
->
i_ctime
=
current_fs_time
(
parent_inode
->
i_sb
);
ret
=
btrfs_update_inode
(
trans
,
root
,
parent_inode
);
if
(
ret
)
btrfs_abort_transaction
(
trans
,
root
,
ret
);
...
...
@@ -6517,7 +6519,7 @@ static int btrfs_link(struct dentry *old_dentry, struct inode *dir,
BTRFS_I
(
inode
)
->
dir_index
=
0ULL
;
inc_nlink
(
inode
);
inode_inc_iversion
(
inode
);
inode
->
i_ctime
=
CURRENT_TIME
;
inode
->
i_ctime
=
current_fs_time
(
inode
->
i_sb
)
;
ihold
(
inode
);
set_bit
(
BTRFS_INODE_COPY_EVERYTHING
,
&
BTRFS_I
(
inode
)
->
runtime_flags
);
...
...
@@ -9298,16 +9300,11 @@ void btrfs_destroy_cachep(void)
* destroy cache.
*/
rcu_barrier
();
if
(
btrfs_inode_cachep
)
kmem_cache_destroy
(
btrfs_inode_cachep
);
if
(
btrfs_trans_handle_cachep
)
kmem_cache_destroy
(
btrfs_trans_handle_cachep
);
if
(
btrfs_transaction_cachep
)
kmem_cache_destroy
(
btrfs_transaction_cachep
);
if
(
btrfs_path_cachep
)
kmem_cache_destroy
(
btrfs_path_cachep
);
if
(
btrfs_free_space_cachep
)
kmem_cache_destroy
(
btrfs_free_space_cachep
);
kmem_cache_destroy
(
btrfs_inode_cachep
);
kmem_cache_destroy
(
btrfs_trans_handle_cachep
);
kmem_cache_destroy
(
btrfs_transaction_cachep
);
kmem_cache_destroy
(
btrfs_path_cachep
);
kmem_cache_destroy
(
btrfs_free_space_cachep
);
}
int
btrfs_init_cachep
(
void
)
...
...
@@ -9375,7 +9372,6 @@ static int btrfs_rename(struct inode *old_dir, struct dentry *old_dentry,
struct
btrfs_root
*
dest
=
BTRFS_I
(
new_dir
)
->
root
;
struct
inode
*
new_inode
=
d_inode
(
new_dentry
);
struct
inode
*
old_inode
=
d_inode
(
old_dentry
);
struct
timespec
ctime
=
CURRENT_TIME
;
u64
index
=
0
;
u64
root_objectid
;
int
ret
;
...
...
@@ -9472,9 +9468,9 @@ static int btrfs_rename(struct inode *old_dir, struct dentry *old_dentry,
inode_inc_iversion
(
old_dir
);
inode_inc_iversion
(
new_dir
);
inode_inc_iversion
(
old_inode
);
old_dir
->
i_ctime
=
old_dir
->
i_mtime
=
ctime
;
new_dir
->
i_ctime
=
new_dir
->
i_mtime
=
ctime
;
old_inode
->
i_ctime
=
c
time
;
old_dir
->
i_ctime
=
old_dir
->
i_mtime
=
new_dir
->
i_ctime
=
new_dir
->
i_mtime
=
old_inode
->
i_ctime
=
c
urrent_fs_time
(
old_dir
->
i_sb
)
;
if
(
old_dentry
->
d_parent
!=
new_dentry
->
d_parent
)
btrfs_record_unlink_dir
(
trans
,
old_dir
,
old_inode
,
1
);
...
...
@@ -9499,7 +9495,7 @@ static int btrfs_rename(struct inode *old_dir, struct dentry *old_dentry,
if
(
new_inode
)
{
inode_inc_iversion
(
new_inode
);
new_inode
->
i_ctime
=
CURRENT_TIME
;
new_inode
->
i_ctime
=
current_fs_time
(
new_inode
->
i_sb
)
;
if
(
unlikely
(
btrfs_ino
(
new_inode
)
==
BTRFS_EMPTY_SUBVOL_DIR_OBJECTID
))
{
root_objectid
=
BTRFS_I
(
new_inode
)
->
location
.
objectid
;
...
...
@@ -9977,7 +9973,7 @@ static int __btrfs_prealloc_file_range(struct inode *inode, int mode,
*
alloc_hint
=
ins
.
objectid
+
ins
.
offset
;
inode_inc_iversion
(
inode
);
inode
->
i_ctime
=
CURRENT_TIME
;
inode
->
i_ctime
=
current_fs_time
(
inode
->
i_sb
)
;
BTRFS_I
(
inode
)
->
flags
|=
BTRFS_INODE_PREALLOC
;
if
(
!
(
mode
&
FALLOC_FL_KEEP_SIZE
)
&&
(
actual_len
>
inode
->
i_size
)
&&
...
...
fs/btrfs/ioctl.c
浏览文件 @
f004fae0
...
...
@@ -347,7 +347,7 @@ static int btrfs_ioctl_setflags(struct file *file, void __user *arg)
btrfs_update_iflags
(
inode
);
inode_inc_iversion
(
inode
);
inode
->
i_ctime
=
CURRENT_TIME
;
inode
->
i_ctime
=
current_fs_time
(
inode
->
i_sb
)
;
ret
=
btrfs_update_inode
(
trans
,
root
,
inode
);
btrfs_end_transaction
(
trans
,
root
);
...
...
@@ -443,7 +443,7 @@ static noinline int create_subvol(struct inode *dir,
struct
btrfs_root
*
root
=
BTRFS_I
(
dir
)
->
root
;
struct
btrfs_root
*
new_root
;
struct
btrfs_block_rsv
block_rsv
;
struct
timespec
cur_time
=
CURRENT_TIME
;
struct
timespec
cur_time
=
current_fs_time
(
dir
->
i_sb
)
;
struct
inode
*
inode
;
int
ret
;
int
err
;
...
...
@@ -844,10 +844,6 @@ static noinline int btrfs_mksubvol(struct path *parent,
if
(
IS_ERR
(
dentry
))
goto
out_unlock
;
error
=
-
EEXIST
;
if
(
d_really_is_positive
(
dentry
))
goto
out_dput
;
error
=
btrfs_may_create
(
dir
,
dentry
);
if
(
error
)
goto
out_dput
;
...
...
@@ -3217,7 +3213,7 @@ static int clone_finish_inode_update(struct btrfs_trans_handle *trans,
inode_inc_iversion
(
inode
);
if
(
!
no_time_update
)
inode
->
i_mtime
=
inode
->
i_ctime
=
CURRENT_TIME
;
inode
->
i_mtime
=
inode
->
i_ctime
=
current_fs_time
(
inode
->
i_sb
)
;
/*
* We round up to the block size at eof when determining which
* extents to clone above, but shouldn't round up the file size.
...
...
@@ -5032,7 +5028,7 @@ static long _btrfs_ioctl_set_received_subvol(struct file *file,
struct
btrfs_root
*
root
=
BTRFS_I
(
inode
)
->
root
;
struct
btrfs_root_item
*
root_item
=
&
root
->
root_item
;
struct
btrfs_trans_handle
*
trans
;
struct
timespec
ct
=
CURRENT_TIME
;
struct
timespec
ct
=
current_fs_time
(
inode
->
i_sb
)
;
int
ret
=
0
;
int
received_uuid_changed
;
...
...
fs/btrfs/ordered-data.c
浏览文件 @
f004fae0
...
...
@@ -1114,6 +1114,5 @@ int __init ordered_data_init(void)
void
ordered_data_exit
(
void
)
{
if
(
btrfs_ordered_extent_cache
)
kmem_cache_destroy
(
btrfs_ordered_extent_cache
);
kmem_cache_destroy
(
btrfs_ordered_extent_cache
);
}
fs/btrfs/root-tree.c
浏览文件 @
f004fae0
...
...
@@ -488,7 +488,7 @@ void btrfs_update_root_times(struct btrfs_trans_handle *trans,
struct
btrfs_root
*
root
)
{
struct
btrfs_root_item
*
item
=
&
root
->
root_item
;
struct
timespec
ct
=
CURRENT_TIME
;
struct
timespec
ct
=
current_fs_time
(
root
->
fs_info
->
sb
)
;
spin_lock
(
&
root
->
root_item_lock
);
btrfs_set_root_ctransid
(
item
,
trans
->
transid
);
...
...
fs/btrfs/transaction.c
浏览文件 @
f004fae0
...
...
@@ -1335,7 +1335,7 @@ static noinline int create_pending_snapshot(struct btrfs_trans_handle *trans,
struct
dentry
*
dentry
;
struct
extent_buffer
*
tmp
;
struct
extent_buffer
*
old
;
struct
timespec
cur_time
=
CURRENT_TIME
;
struct
timespec
cur_time
;
int
ret
=
0
;
u64
to_reserve
=
0
;
u64
index
=
0
;
...
...
@@ -1385,6 +1385,8 @@ static noinline int create_pending_snapshot(struct btrfs_trans_handle *trans,
parent_root
=
BTRFS_I
(
parent_inode
)
->
root
;
record_root_in_trans
(
trans
,
parent_root
);
cur_time
=
current_fs_time
(
parent_inode
->
i_sb
);
/*
* insert the directory item
*/
...
...
@@ -1527,7 +1529,8 @@ static noinline int create_pending_snapshot(struct btrfs_trans_handle *trans,
btrfs_i_size_write
(
parent_inode
,
parent_inode
->
i_size
+
dentry
->
d_name
.
len
*
2
);
parent_inode
->
i_mtime
=
parent_inode
->
i_ctime
=
CURRENT_TIME
;
parent_inode
->
i_mtime
=
parent_inode
->
i_ctime
=
current_fs_time
(
parent_inode
->
i_sb
);
ret
=
btrfs_update_inode_fallback
(
trans
,
parent_root
,
parent_inode
);
if
(
ret
)
{
btrfs_abort_transaction
(
trans
,
root
,
ret
);
...
...
fs/btrfs/xattr.c
浏览文件 @
f004fae0
...
...
@@ -249,7 +249,7 @@ int __btrfs_setxattr(struct btrfs_trans_handle *trans,
goto
out
;
inode_inc_iversion
(
inode
);
inode
->
i_ctime
=
CURRENT_TIME
;
inode
->
i_ctime
=
current_fs_time
(
inode
->
i_sb
)
;
set_bit
(
BTRFS_INODE_COPY_EVERYTHING
,
&
BTRFS_I
(
inode
)
->
runtime_flags
);
ret
=
btrfs_update_inode
(
trans
,
root
,
inode
);
BUG_ON
(
ret
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录