Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
raspberrypi-kernel
提交
af5bc92d
R
raspberrypi-kernel
项目概览
openeuler
/
raspberrypi-kernel
通知
13
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
R
raspberrypi-kernel
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
af5bc92d
编写于
9月 08, 2008
作者:
T
Theodore Ts'o
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
ext4: Fix whitespace checkpatch warnings/errors
Signed-off-by:
N
"Theodore Ts'o"
<
tytso@mit.edu
>
上级
e5f8eab8
变更
18
展开全部
隐藏空白更改
内联
并排
Showing
18 changed file
with
350 addition
and
350 deletion
+350
-350
fs/ext4/acl.h
fs/ext4/acl.h
+3
-3
fs/ext4/balloc.c
fs/ext4/balloc.c
+35
-35
fs/ext4/bitmap.c
fs/ext4/bitmap.c
+3
-3
fs/ext4/dir.c
fs/ext4/dir.c
+26
-26
fs/ext4/ext4.h
fs/ext4/ext4.h
+34
-34
fs/ext4/ext4_sb.h
fs/ext4/ext4_sb.h
+4
-4
fs/ext4/extents.c
fs/ext4/extents.c
+3
-3
fs/ext4/file.c
fs/ext4/file.c
+1
-1
fs/ext4/fsync.c
fs/ext4/fsync.c
+1
-1
fs/ext4/hash.c
fs/ext4/hash.c
+4
-4
fs/ext4/ialloc.c
fs/ext4/ialloc.c
+25
-25
fs/ext4/inode.c
fs/ext4/inode.c
+48
-48
fs/ext4/ioctl.c
fs/ext4/ioctl.c
+2
-2
fs/ext4/namei.c
fs/ext4/namei.c
+151
-151
fs/ext4/resize.c
fs/ext4/resize.c
+3
-3
fs/ext4/super.c
fs/ext4/super.c
+3
-3
fs/ext4/symlink.c
fs/ext4/symlink.c
+2
-2
fs/ext4/xattr.h
fs/ext4/xattr.h
+2
-2
未找到文件。
fs/ext4/acl.h
浏览文件 @
af5bc92d
...
...
@@ -58,9 +58,9 @@ static inline int ext4_acl_count(size_t size)
#define EXT4_ACL_NOT_CACHED ((void *)-1)
/* acl.c */
extern
int
ext4_permission
(
struct
inode
*
,
int
);
extern
int
ext4_acl_chmod
(
struct
inode
*
);
extern
int
ext4_init_acl
(
handle_t
*
,
struct
inode
*
,
struct
inode
*
);
extern
int
ext4_permission
(
struct
inode
*
,
int
);
extern
int
ext4_acl_chmod
(
struct
inode
*
);
extern
int
ext4_init_acl
(
handle_t
*
,
struct
inode
*
,
struct
inode
*
);
#else
/* CONFIG_EXT4DEV_FS_POSIX_ACL */
#include <linux/sched.h>
...
...
fs/ext4/balloc.c
浏览文件 @
af5bc92d
...
...
@@ -132,7 +132,7 @@ unsigned ext4_init_block_bitmap(struct super_block *sb, struct buffer_head *bh,
*/
group_blocks
=
ext4_blocks_count
(
sbi
->
s_es
)
-
le32_to_cpu
(
sbi
->
s_es
->
s_first_data_block
)
-
(
EXT4_BLOCKS_PER_GROUP
(
sb
)
*
(
sbi
->
s_groups_count
-
1
));
(
EXT4_BLOCKS_PER_GROUP
(
sb
)
*
(
sbi
->
s_groups_count
-
1
));
}
else
{
group_blocks
=
EXT4_BLOCKS_PER_GROUP
(
sb
);
}
...
...
@@ -200,20 +200,20 @@ unsigned ext4_init_block_bitmap(struct super_block *sb, struct buffer_head *bh,
* @bh: pointer to the buffer head to store the block
* group descriptor
*/
struct
ext4_group_desc
*
ext4_get_group_desc
(
struct
super_block
*
sb
,
struct
ext4_group_desc
*
ext4_get_group_desc
(
struct
super_block
*
sb
,
ext4_group_t
block_group
,
struct
buffer_head
**
bh
)
struct
buffer_head
**
bh
)
{
unsigned
long
group_desc
;
unsigned
long
offset
;
struct
ext4_group_desc
*
desc
;
struct
ext4_group_desc
*
desc
;
struct
ext4_sb_info
*
sbi
=
EXT4_SB
(
sb
);
if
(
block_group
>=
sbi
->
s_groups_count
)
{
ext4_error
(
sb
,
"ext4_get_group_desc"
,
"block_group >= groups_count - "
"block_group = %lu, groups_count = %lu"
,
block_group
,
sbi
->
s_groups_count
);
ext4_error
(
sb
,
"ext4_get_group_desc"
,
"block_group >= groups_count - "
"block_group = %lu, groups_count = %lu"
,
block_group
,
sbi
->
s_groups_count
);
return
NULL
;
}
...
...
@@ -222,10 +222,10 @@ struct ext4_group_desc * ext4_get_group_desc(struct super_block * sb,
group_desc
=
block_group
>>
EXT4_DESC_PER_BLOCK_BITS
(
sb
);
offset
=
block_group
&
(
EXT4_DESC_PER_BLOCK
(
sb
)
-
1
);
if
(
!
sbi
->
s_group_desc
[
group_desc
])
{
ext4_error
(
sb
,
"ext4_get_group_desc"
,
"Group descriptor not loaded - "
"block_group = %lu, group_desc = %lu, desc = %lu"
,
block_group
,
group_desc
,
offset
);
ext4_error
(
sb
,
"ext4_get_group_desc"
,
"Group descriptor not loaded - "
"block_group = %lu, group_desc = %lu, desc = %lu"
,
block_group
,
group_desc
,
offset
);
return
NULL
;
}
...
...
@@ -302,8 +302,8 @@ static int ext4_valid_block_bitmap(struct super_block *sb,
struct
buffer_head
*
ext4_read_block_bitmap
(
struct
super_block
*
sb
,
ext4_group_t
block_group
)
{
struct
ext4_group_desc
*
desc
;
struct
buffer_head
*
bh
=
NULL
;
struct
ext4_group_desc
*
desc
;
struct
buffer_head
*
bh
=
NULL
;
ext4_fsblk_t
bitmap_blk
;
desc
=
ext4_get_group_desc
(
sb
,
block_group
,
NULL
);
...
...
@@ -506,8 +506,8 @@ void ext4_rsv_window_add(struct super_block *sb,
struct
rb_node
*
node
=
&
rsv
->
rsv_node
;
ext4_fsblk_t
start
=
rsv
->
rsv_start
;
struct
rb_node
**
p
=
&
root
->
rb_node
;
struct
rb_node
*
parent
=
NULL
;
struct
rb_node
**
p
=
&
root
->
rb_node
;
struct
rb_node
*
parent
=
NULL
;
struct
ext4_reserve_window_node
*
this
;
while
(
*
p
)
...
...
@@ -661,8 +661,8 @@ void ext4_free_blocks_sb(handle_t *handle, struct super_block *sb,
ext4_grpblk_t
bit
;
unsigned
long
i
;
unsigned
long
overflow
;
struct
ext4_group_desc
*
desc
;
struct
ext4_super_block
*
es
;
struct
ext4_group_desc
*
desc
;
struct
ext4_super_block
*
es
;
struct
ext4_sb_info
*
sbi
;
int
err
=
0
,
ret
;
ext4_grpblk_t
group_freed
;
...
...
@@ -673,13 +673,13 @@ void ext4_free_blocks_sb(handle_t *handle, struct super_block *sb,
if
(
block
<
le32_to_cpu
(
es
->
s_first_data_block
)
||
block
+
count
<
block
||
block
+
count
>
ext4_blocks_count
(
es
))
{
ext4_error
(
sb
,
"ext4_free_blocks"
,
"Freeing blocks not in datazone - "
"block = %llu, count = %lu"
,
block
,
count
);
ext4_error
(
sb
,
"ext4_free_blocks"
,
"Freeing blocks not in datazone - "
"block = %llu, count = %lu"
,
block
,
count
);
goto
error_return
;
}
ext4_debug
(
"freeing block(s) %llu-%llu
\n
"
,
block
,
block
+
count
-
1
);
ext4_debug
(
"freeing block(s) %llu-%llu
\n
"
,
block
,
block
+
count
-
1
);
do_more:
overflow
=
0
;
...
...
@@ -696,7 +696,7 @@ void ext4_free_blocks_sb(handle_t *handle, struct super_block *sb,
bitmap_bh
=
ext4_read_block_bitmap
(
sb
,
block_group
);
if
(
!
bitmap_bh
)
goto
error_return
;
desc
=
ext4_get_group_desc
(
sb
,
block_group
,
&
gd_bh
);
desc
=
ext4_get_group_desc
(
sb
,
block_group
,
&
gd_bh
);
if
(
!
desc
)
goto
error_return
;
...
...
@@ -705,10 +705,10 @@ void ext4_free_blocks_sb(handle_t *handle, struct super_block *sb,
in_range
(
block
,
ext4_inode_table
(
sb
,
desc
),
sbi
->
s_itb_per_group
)
||
in_range
(
block
+
count
-
1
,
ext4_inode_table
(
sb
,
desc
),
sbi
->
s_itb_per_group
))
{
ext4_error
(
sb
,
"ext4_free_blocks"
,
"Freeing blocks in system zones - "
"Block = %llu, count = %lu"
,
block
,
count
);
ext4_error
(
sb
,
"ext4_free_blocks"
,
"Freeing blocks in system zones - "
"Block = %llu, count = %lu"
,
block
,
count
);
goto
error_return
;
}
...
...
@@ -850,7 +850,7 @@ void ext4_free_blocks(handle_t *handle, struct inode *inode,
ext4_fsblk_t
block
,
unsigned
long
count
,
int
metadata
)
{
struct
super_block
*
sb
;
struct
super_block
*
sb
;
unsigned
long
dquot_freed_blocks
;
/* this isn't the right place to decide whether block is metadata
...
...
@@ -1019,7 +1019,7 @@ claim_block(spinlock_t *lock, ext4_grpblk_t block, struct buffer_head *bh)
if
(
ext4_set_bit_atomic
(
lock
,
block
,
bh
->
b_data
))
return
0
;
jbd_lock_bh_state
(
bh
);
if
(
jh
->
b_committed_data
&&
ext4_test_bit
(
block
,
jh
->
b_committed_data
))
{
if
(
jh
->
b_committed_data
&&
ext4_test_bit
(
block
,
jh
->
b_committed_data
))
{
ext4_clear_bit_atomic
(
lock
,
block
,
bh
->
b_data
);
ret
=
0
;
}
else
{
...
...
@@ -1170,7 +1170,7 @@ ext4_try_to_allocate(struct super_block *sb, handle_t *handle,
static
int
find_next_reservable_window
(
struct
ext4_reserve_window_node
*
search_head
,
struct
ext4_reserve_window_node
*
my_rsv
,
struct
super_block
*
sb
,
struct
super_block
*
sb
,
ext4_fsblk_t
start_block
,
ext4_fsblk_t
last_block
)
{
...
...
@@ -1204,7 +1204,7 @@ static int find_next_reservable_window(
prev
=
rsv
;
next
=
rb_next
(
&
rsv
->
rsv_node
);
rsv
=
rb_entry
(
next
,
struct
ext4_reserve_window_node
,
rsv_node
);
rsv
=
rb_entry
(
next
,
struct
ext4_reserve_window_node
,
rsv_node
);
/*
* Reached the last reservation, we can just append to the
...
...
@@ -1342,7 +1342,7 @@ static int alloc_new_reservation(struct ext4_reserve_window_node *my_rsv,
size
=
size
*
2
;
if
(
size
>
EXT4_MAX_RESERVE_BLOCKS
)
size
=
EXT4_MAX_RESERVE_BLOCKS
;
my_rsv
->
rsv_goal_size
=
size
;
my_rsv
->
rsv_goal_size
=
size
;
}
}
...
...
@@ -1491,7 +1491,7 @@ static ext4_grpblk_t
ext4_try_to_allocate_with_rsv
(
struct
super_block
*
sb
,
handle_t
*
handle
,
ext4_group_t
group
,
struct
buffer_head
*
bitmap_bh
,
ext4_grpblk_t
grp_goal
,
struct
ext4_reserve_window_node
*
my_rsv
,
struct
ext4_reserve_window_node
*
my_rsv
,
unsigned
long
*
count
,
int
*
errp
)
{
ext4_fsblk_t
group_first_block
,
group_last_block
;
...
...
@@ -1519,7 +1519,7 @@ ext4_try_to_allocate_with_rsv(struct super_block *sb, handle_t *handle,
* or the file is not a regular file
* or last attempt to allocate a block with reservation turned on failed
*/
if
(
my_rsv
==
NULL
)
{
if
(
my_rsv
==
NULL
)
{
ret
=
ext4_try_to_allocate
(
sb
,
handle
,
group
,
bitmap_bh
,
grp_goal
,
count
,
NULL
);
goto
out
;
...
...
@@ -2184,7 +2184,7 @@ unsigned long ext4_bg_num_gdb(struct super_block *sb, ext4_group_t group)
if
(
!
EXT4_HAS_INCOMPAT_FEATURE
(
sb
,
EXT4_FEATURE_INCOMPAT_META_BG
)
||
metagroup
<
first_meta_bg
)
return
ext4_bg_num_gdb_nometa
(
sb
,
group
);
return
ext4_bg_num_gdb_nometa
(
sb
,
group
);
return
ext4_bg_num_gdb_meta
(
sb
,
group
);
...
...
fs/ext4/bitmap.c
浏览文件 @
af5bc92d
...
...
@@ -15,17 +15,17 @@
static
const
int
nibblemap
[]
=
{
4
,
3
,
3
,
2
,
3
,
2
,
2
,
1
,
3
,
2
,
2
,
1
,
2
,
1
,
1
,
0
};
unsigned
long
ext4_count_free
(
struct
buffer_head
*
map
,
unsigned
int
numchars
)
unsigned
long
ext4_count_free
(
struct
buffer_head
*
map
,
unsigned
int
numchars
)
{
unsigned
int
i
;
unsigned
long
sum
=
0
;
if
(
!
map
)
return
(
0
)
;
return
0
;
for
(
i
=
0
;
i
<
numchars
;
i
++
)
sum
+=
nibblemap
[
map
->
b_data
[
i
]
&
0xf
]
+
nibblemap
[(
map
->
b_data
[
i
]
>>
4
)
&
0xf
];
return
(
sum
)
;
return
sum
;
}
#endif
/* EXT4FS_DEBUG */
...
...
fs/ext4/dir.c
浏览文件 @
af5bc92d
...
...
@@ -33,10 +33,10 @@ static unsigned char ext4_filetype_table[] = {
};
static
int
ext4_readdir
(
struct
file
*
,
void
*
,
filldir_t
);
static
int
ext4_dx_readdir
(
struct
file
*
filp
,
void
*
dirent
,
filldir_t
filldir
);
static
int
ext4_release_dir
(
struct
inode
*
inode
,
struct
file
*
filp
);
static
int
ext4_dx_readdir
(
struct
file
*
filp
,
void
*
dirent
,
filldir_t
filldir
);
static
int
ext4_release_dir
(
struct
inode
*
inode
,
struct
file
*
filp
);
const
struct
file_operations
ext4_dir_operations
=
{
.
llseek
=
generic_file_llseek
,
...
...
@@ -61,12 +61,12 @@ static unsigned char get_dtype(struct super_block *sb, int filetype)
}
int
ext4_check_dir_entry
(
const
char
*
function
,
struct
inode
*
dir
,
struct
ext4_dir_entry_2
*
de
,
struct
buffer_head
*
bh
,
unsigned
long
offset
)
int
ext4_check_dir_entry
(
const
char
*
function
,
struct
inode
*
dir
,
struct
ext4_dir_entry_2
*
de
,
struct
buffer_head
*
bh
,
unsigned
long
offset
)
{
const
char
*
error_msg
=
NULL
;
const
char
*
error_msg
=
NULL
;
const
int
rlen
=
ext4_rec_len_from_disk
(
de
->
rec_len
);
if
(
rlen
<
EXT4_DIR_REC_LEN
(
1
))
...
...
@@ -82,7 +82,7 @@ int ext4_check_dir_entry (const char * function, struct inode * dir,
error_msg
=
"inode out of bounds"
;
if
(
error_msg
!=
NULL
)
ext4_error
(
dir
->
i_sb
,
function
,
ext4_error
(
dir
->
i_sb
,
function
,
"bad entry in directory #%lu: %s - "
"offset=%lu, inode=%lu, rec_len=%d, name_len=%d"
,
dir
->
i_ino
,
error_msg
,
offset
,
...
...
@@ -91,8 +91,8 @@ int ext4_check_dir_entry (const char * function, struct inode * dir,
return
error_msg
==
NULL
?
1
:
0
;
}
static
int
ext4_readdir
(
struct
file
*
filp
,
void
*
dirent
,
filldir_t
filldir
)
static
int
ext4_readdir
(
struct
file
*
filp
,
void
*
dirent
,
filldir_t
filldir
)
{
int
error
=
0
;
unsigned
long
offset
;
...
...
@@ -148,7 +148,7 @@ static int ext4_readdir(struct file * filp,
* of recovering data when there's a bad sector
*/
if
(
!
bh
)
{
ext4_error
(
sb
,
"ext4_readdir"
,
ext4_error
(
sb
,
"ext4_readdir"
,
"directory #%lu contains a hole at offset %lu"
,
inode
->
i_ino
,
(
unsigned
long
)
filp
->
f_pos
);
/* corrupt size? Maybe no more blocks to read */
...
...
@@ -187,14 +187,14 @@ static int ext4_readdir(struct file * filp,
while
(
!
error
&&
filp
->
f_pos
<
inode
->
i_size
&&
offset
<
sb
->
s_blocksize
)
{
de
=
(
struct
ext4_dir_entry_2
*
)
(
bh
->
b_data
+
offset
);
if
(
!
ext4_check_dir_entry
(
"ext4_readdir"
,
inode
,
de
,
bh
,
offset
))
{
if
(
!
ext4_check_dir_entry
(
"ext4_readdir"
,
inode
,
de
,
bh
,
offset
))
{
/*
* On error, skip the f_pos to the next block
*/
filp
->
f_pos
=
(
filp
->
f_pos
|
(
sb
->
s_blocksize
-
1
))
+
1
;
brelse
(
bh
);
brelse
(
bh
);
ret
=
stored
;
goto
out
;
}
...
...
@@ -218,12 +218,12 @@ static int ext4_readdir(struct file * filp,
break
;
if
(
version
!=
filp
->
f_version
)
goto
revalidate
;
stored
++
;
stored
++
;
}
filp
->
f_pos
+=
ext4_rec_len_from_disk
(
de
->
rec_len
);
}
offset
=
0
;
brelse
(
bh
);
brelse
(
bh
);
}
out:
return
ret
;
...
...
@@ -290,9 +290,9 @@ static void free_rb_tree_fname(struct rb_root *root)
parent
=
rb_parent
(
n
);
fname
=
rb_entry
(
n
,
struct
fname
,
rb_hash
);
while
(
fname
)
{
struct
fname
*
old
=
fname
;
struct
fname
*
old
=
fname
;
fname
=
fname
->
next
;
kfree
(
old
);
kfree
(
old
);
}
if
(
!
parent
)
root
->
rb_node
=
NULL
;
...
...
@@ -331,7 +331,7 @@ int ext4_htree_store_dirent(struct file *dir_file, __u32 hash,
struct
ext4_dir_entry_2
*
dirent
)
{
struct
rb_node
**
p
,
*
parent
=
NULL
;
struct
fname
*
fname
,
*
new_fn
;
struct
fname
*
fname
,
*
new_fn
;
struct
dir_private_info
*
info
;
int
len
;
...
...
@@ -388,13 +388,13 @@ int ext4_htree_store_dirent(struct file *dir_file, __u32 hash,
* for all entres on the fname linked list. (Normally there is only
* one entry on the linked list, unless there are 62 bit hash collisions.)
*/
static
int
call_filldir
(
struct
file
*
filp
,
void
*
dirent
,
static
int
call_filldir
(
struct
file
*
filp
,
void
*
dirent
,
filldir_t
filldir
,
struct
fname
*
fname
)
{
struct
dir_private_info
*
info
=
filp
->
private_data
;
loff_t
curr_pos
;
struct
inode
*
inode
=
filp
->
f_path
.
dentry
->
d_inode
;
struct
super_block
*
sb
;
struct
super_block
*
sb
;
int
error
;
sb
=
inode
->
i_sb
;
...
...
@@ -420,8 +420,8 @@ static int call_filldir(struct file * filp, void * dirent,
return
0
;
}
static
int
ext4_dx_readdir
(
struct
file
*
filp
,
void
*
dirent
,
filldir_t
filldir
)
static
int
ext4_dx_readdir
(
struct
file
*
filp
,
void
*
dirent
,
filldir_t
filldir
)
{
struct
dir_private_info
*
info
=
filp
->
private_data
;
struct
inode
*
inode
=
filp
->
f_path
.
dentry
->
d_inode
;
...
...
@@ -512,7 +512,7 @@ static int ext4_dx_readdir(struct file * filp,
return
0
;
}
static
int
ext4_release_dir
(
struct
inode
*
inode
,
struct
file
*
filp
)
static
int
ext4_release_dir
(
struct
inode
*
inode
,
struct
file
*
filp
)
{
if
(
filp
->
private_data
)
ext4_htree_free_dir_info
(
filp
->
private_data
);
...
...
fs/ext4/ext4.h
浏览文件 @
af5bc92d
...
...
@@ -44,9 +44,9 @@
#ifdef EXT4FS_DEBUG
#define ext4_debug(f, a...) \
do { \
printk
(KERN_DEBUG "EXT4-fs DEBUG (%s, %d): %s:", \
printk(KERN_DEBUG "EXT4-fs DEBUG (%s, %d): %s:", \
__FILE__, __LINE__, __func__); \
printk
(KERN_DEBUG f, ## a); \
printk(KERN_DEBUG f, ## a); \
} while (0)
#else
#define ext4_debug(f, a...) do {} while (0)
...
...
@@ -128,7 +128,7 @@ struct ext4_allocation_request {
#else
# define EXT4_BLOCK_SIZE(s) (EXT4_MIN_BLOCK_SIZE << (s)->s_log_block_size)
#endif
#define EXT4_ADDR_PER_BLOCK(s) (EXT4_BLOCK_SIZE(s) / sizeof
(__u32))
#define EXT4_ADDR_PER_BLOCK(s) (EXT4_BLOCK_SIZE(s) / sizeof(__u32))
#ifdef __KERNEL__
# define EXT4_BLOCK_SIZE_BITS(s) ((s)->s_blocksize_bits)
#else
...
...
@@ -292,7 +292,7 @@ struct ext4_new_group_data {
#define EXT4_IOC_GETVERSION _IOR('f', 3, long)
#define EXT4_IOC_SETVERSION _IOW('f', 4, long)
#define EXT4_IOC_GROUP_EXTEND _IOW('f', 7, unsigned long)
#define EXT4_IOC_GROUP_ADD _IOW('f', 8,struct ext4_new_group_input)
#define EXT4_IOC_GROUP_ADD _IOW('f', 8,
struct ext4_new_group_input)
#define EXT4_IOC_GETVERSION_OLD FS_IOC_GETVERSION
#define EXT4_IOC_SETVERSION_OLD FS_IOC_SETVERSION
#ifdef CONFIG_JBD2_DEBUG
...
...
@@ -667,7 +667,7 @@ struct ext4_super_block {
};
#ifdef __KERNEL__
static
inline
struct
ext4_sb_info
*
EXT4_SB
(
struct
super_block
*
sb
)
static
inline
struct
ext4_sb_info
*
EXT4_SB
(
struct
super_block
*
sb
)
{
return
sb
->
s_fs_info
;
}
...
...
@@ -725,11 +725,11 @@ static inline int ext4_valid_inum(struct super_block *sb, unsigned long ino)
*/
#define EXT4_HAS_COMPAT_FEATURE(sb,mask) \
(
EXT4_SB(sb)->s_es->s_feature_compat & cpu_to_le32(mask)
)
(
EXT4_SB(sb)->s_es->s_feature_compat & cpu_to_le32(mask)
)
#define EXT4_HAS_RO_COMPAT_FEATURE(sb,mask) \
(
EXT4_SB(sb)->s_es->s_feature_ro_compat & cpu_to_le32(mask)
)
(
EXT4_SB(sb)->s_es->s_feature_ro_compat & cpu_to_le32(mask)
)
#define EXT4_HAS_INCOMPAT_FEATURE(sb,mask) \
(
EXT4_SB(sb)->s_es->s_feature_incompat & cpu_to_le32(mask)
)
(
EXT4_SB(sb)->s_es->s_feature_incompat & cpu_to_le32(mask)
)
#define EXT4_SET_COMPAT_FEATURE(sb,mask) \
EXT4_SB(sb)->s_es->s_feature_compat |= cpu_to_le32(mask)
#define EXT4_SET_RO_COMPAT_FEATURE(sb,mask) \
...
...
@@ -985,13 +985,13 @@ extern ext4_fsblk_t ext4_old_new_blocks(handle_t *handle, struct inode *inode,
ext4_fsblk_t
goal
,
unsigned
long
*
count
,
int
*
errp
);
extern
ext4_fsblk_t
ext4_has_free_blocks
(
struct
ext4_sb_info
*
sbi
,
ext4_fsblk_t
nblocks
);
extern
void
ext4_free_blocks
(
handle_t
*
handle
,
struct
inode
*
inode
,
extern
void
ext4_free_blocks
(
handle_t
*
handle
,
struct
inode
*
inode
,
ext4_fsblk_t
block
,
unsigned
long
count
,
int
metadata
);
extern
void
ext4_free_blocks_sb
(
handle_t
*
handle
,
struct
super_block
*
sb
,
ext4_fsblk_t
block
,
unsigned
long
count
,
extern
void
ext4_free_blocks_sb
(
handle_t
*
handle
,
struct
super_block
*
sb
,
ext4_fsblk_t
block
,
unsigned
long
count
,
unsigned
long
*
pdquot_freed_blocks
);
extern
ext4_fsblk_t
ext4_count_free_blocks
(
struct
super_block
*
);
extern
void
ext4_check_blocks_bitmap
(
struct
super_block
*
);
extern
ext4_fsblk_t
ext4_count_free_blocks
(
struct
super_block
*
);
extern
void
ext4_check_blocks_bitmap
(
struct
super_block
*
);
extern
struct
ext4_group_desc
*
ext4_get_group_desc
(
struct
super_block
*
sb
,
ext4_group_t
block_group
,
struct
buffer_head
**
bh
);
...
...
@@ -1009,20 +1009,20 @@ extern int ext4_htree_store_dirent(struct file *dir_file, __u32 hash,
extern
void
ext4_htree_free_dir_info
(
struct
dir_private_info
*
p
);
/* fsync.c */
extern
int
ext4_sync_file
(
struct
file
*
,
struct
dentry
*
,
int
);
extern
int
ext4_sync_file
(
struct
file
*
,
struct
dentry
*
,
int
);
/* hash.c */
extern
int
ext4fs_dirhash
(
const
char
*
name
,
int
len
,
struct
dx_hash_info
*
hinfo
);
/* ialloc.c */
extern
struct
inode
*
ext4_new_inode
(
handle_t
*
,
struct
inode
*
,
int
);
extern
void
ext4_free_inode
(
handle_t
*
,
struct
inode
*
);
extern
struct
inode
*
ext4_orphan_get
(
struct
super_block
*
,
unsigned
long
);
extern
unsigned
long
ext4_count_free_inodes
(
struct
super_block
*
);
extern
unsigned
long
ext4_count_dirs
(
struct
super_block
*
);
extern
void
ext4_check_inodes_bitmap
(
struct
super_block
*
);
extern
unsigned
long
ext4_count_free
(
struct
buffer_head
*
,
unsigned
);
extern
struct
inode
*
ext4_new_inode
(
handle_t
*
,
struct
inode
*
,
int
);
extern
void
ext4_free_inode
(
handle_t
*
,
struct
inode
*
);
extern
struct
inode
*
ext4_orphan_get
(
struct
super_block
*
,
unsigned
long
);
extern
unsigned
long
ext4_count_free_inodes
(
struct
super_block
*
);
extern
unsigned
long
ext4_count_dirs
(
struct
super_block
*
);
extern
void
ext4_check_inodes_bitmap
(
struct
super_block
*
);
extern
unsigned
long
ext4_count_free
(
struct
buffer_head
*
,
unsigned
);
/* mballoc.c */
extern
long
ext4_mb_stats
;
...
...
@@ -1056,18 +1056,18 @@ int ext4_get_blocks_handle(handle_t *handle, struct inode *inode,
int
create
,
int
extend_disksize
);
extern
struct
inode
*
ext4_iget
(
struct
super_block
*
,
unsigned
long
);
extern
int
ext4_write_inode
(
struct
inode
*
,
int
);
extern
int
ext4_setattr
(
struct
dentry
*
,
struct
iattr
*
);
extern
int
ext4_write_inode
(
struct
inode
*
,
int
);
extern
int
ext4_setattr
(
struct
dentry
*
,
struct
iattr
*
);
extern
int
ext4_getattr
(
struct
vfsmount
*
mnt
,
struct
dentry
*
dentry
,
struct
kstat
*
stat
);
extern
void
ext4_delete_inode
(
struct
inode
*
);
extern
int
ext4_sync_inode
(
handle_t
*
,
struct
inode
*
);
extern
void
ext4_discard_reservation
(
struct
inode
*
);
extern
void
ext4_delete_inode
(
struct
inode
*
);
extern
int
ext4_sync_inode
(
handle_t
*
,
struct
inode
*
);
extern
void
ext4_discard_reservation
(
struct
inode
*
);
extern
void
ext4_dirty_inode
(
struct
inode
*
);
extern
int
ext4_change_inode_journal_flag
(
struct
inode
*
,
int
);
extern
int
ext4_get_inode_loc
(
struct
inode
*
,
struct
ext4_iloc
*
);
extern
int
ext4_can_truncate
(
struct
inode
*
inode
);
extern
void
ext4_truncate
(
struct
inode
*
);
extern
void
ext4_truncate
(
struct
inode
*
);
extern
void
ext4_set_inode_flags
(
struct
inode
*
);
extern
void
ext4_get_inode_flags
(
struct
ext4_inode_info
*
);
extern
void
ext4_set_aops
(
struct
inode
*
inode
);
...
...
@@ -1080,7 +1080,7 @@ extern int ext4_page_mkwrite(struct vm_area_struct *vma, struct page *page);
/* ioctl.c */
extern
long
ext4_ioctl
(
struct
file
*
,
unsigned
int
,
unsigned
long
);
extern
long
ext4_compat_ioctl
(
struct
file
*
,
unsigned
int
,
unsigned
long
);
extern
long
ext4_compat_ioctl
(
struct
file
*
,
unsigned
int
,
unsigned
long
);
/* migrate.c */
extern
int
ext4_ext_migrate
(
struct
inode
*
,
struct
file
*
,
unsigned
int
,
...
...
@@ -1099,14 +1099,14 @@ extern int ext4_group_extend(struct super_block *sb,
ext4_fsblk_t
n_blocks_count
);
/* super.c */
extern
void
ext4_error
(
struct
super_block
*
,
const
char
*
,
const
char
*
,
...)
extern
void
ext4_error
(
struct
super_block
*
,
const
char
*
,
const
char
*
,
...)
__attribute__
((
format
(
printf
,
3
,
4
)));
extern
void
__ext4_std_error
(
struct
super_block
*
,
const
char
*
,
int
);
extern
void
ext4_abort
(
struct
super_block
*
,
const
char
*
,
const
char
*
,
...)
extern
void
__ext4_std_error
(
struct
super_block
*
,
const
char
*
,
int
);
extern
void
ext4_abort
(
struct
super_block
*
,
const
char
*
,
const
char
*
,
...)
__attribute__
((
format
(
printf
,
3
,
4
)));
extern
void
ext4_warning
(
struct
super_block
*
,
const
char
*
,
const
char
*
,
...)
extern
void
ext4_warning
(
struct
super_block
*
,
const
char
*
,
const
char
*
,
...)
__attribute__
((
format
(
printf
,
3
,
4
)));
extern
void
ext4_update_dynamic_rev
(
struct
super_block
*
sb
);
extern
void
ext4_update_dynamic_rev
(
struct
super_block
*
sb
);
extern
int
ext4_update_compat_feature
(
handle_t
*
handle
,
struct
super_block
*
sb
,
__u32
compat
);
extern
int
ext4_update_rocompat_feature
(
handle_t
*
handle
,
...
...
@@ -1179,7 +1179,7 @@ static inline void ext4_isize_set(struct ext4_inode *raw_inode, loff_t i_size)
static
inline
struct
ext4_group_info
*
ext4_get_group_info
(
struct
super_block
*
sb
,
ext4_group_t
group
)
ext4_group_t
group
)
{
struct
ext4_group_info
***
grp_info
;
long
indexv
,
indexh
;
...
...
fs/ext4/ext4_sb.h
浏览文件 @
af5bc92d
...
...
@@ -40,8 +40,8 @@ struct ext4_sb_info {
unsigned
long
s_blocks_last
;
/* Last seen block count */
loff_t
s_bitmap_maxbytes
;
/* max bytes for bitmap files */
struct
buffer_head
*
s_sbh
;
/* Buffer containing the super block */
struct
ext4_super_block
*
s_es
;
/* Pointer to the super block in the buffer */
struct
buffer_head
**
s_group_desc
;
struct
ext4_super_block
*
s_es
;
/* Pointer to the super block in the buffer */
struct
buffer_head
**
s_group_desc
;
unsigned
long
s_mount_opt
;
ext4_fsblk_t
s_sb_block
;
uid_t
s_resuid
;
...
...
@@ -67,8 +67,8 @@ struct ext4_sb_info {
struct
ext4_reserve_window_node
s_rsv_window_head
;
/* Journaling */
struct
inode
*
s_journal_inode
;
struct
journal_s
*
s_journal
;
struct
inode
*
s_journal_inode
;
struct
journal_s
*
s_journal
;
struct
list_head
s_orphan
;
unsigned
long
s_commit_interval
;
struct
block_device
*
journal_bdev
;
...
...
fs/ext4/extents.c
浏览文件 @
af5bc92d
...
...
@@ -383,8 +383,8 @@ static void ext4_ext_show_leaf(struct inode *inode, struct ext4_ext_path *path)
ext_debug
(
"
\n
"
);
}
#else
#define ext4_ext_show_path(inode,path)
#define ext4_ext_show_leaf(inode,path)
#define ext4_ext_show_path(inode,
path)
#define ext4_ext_show_leaf(inode,
path)
#endif
void
ext4_ext_drop_refs
(
struct
ext4_ext_path
*
path
)
...
...
@@ -1476,7 +1476,7 @@ int ext4_ext_insert_extent(handle_t *handle, struct inode *inode,
struct
ext4_ext_path
*
path
,
struct
ext4_extent
*
newext
)
{
struct
ext4_extent_header
*
eh
;
struct
ext4_extent_header
*
eh
;
struct
ext4_extent
*
ex
,
*
fex
;
struct
ext4_extent
*
nearex
;
/* nearest extent */
struct
ext4_ext_path
*
npath
=
NULL
;
...
...
fs/ext4/file.c
浏览文件 @
af5bc92d
...
...
@@ -31,7 +31,7 @@
* from ext4_file_open: open gets called at every open, but release
* gets called only when /all/ the files are closed.
*/
static
int
ext4_release_file
(
struct
inode
*
inode
,
struct
file
*
filp
)
static
int
ext4_release_file
(
struct
inode
*
inode
,
struct
file
*
filp
)
{
/* if we are the last writer on the inode, drop the block reservation */
if
((
filp
->
f_mode
&
FMODE_WRITE
)
&&
...
...
fs/ext4/fsync.c
浏览文件 @
af5bc92d
...
...
@@ -43,7 +43,7 @@
* inode to disk.
*/
int
ext4_sync_file
(
struct
file
*
file
,
struct
dentry
*
dentry
,
int
datasync
)
int
ext4_sync_file
(
struct
file
*
file
,
struct
dentry
*
dentry
,
int
datasync
)
{
struct
inode
*
inode
=
dentry
->
d_inode
;
journal_t
*
journal
=
EXT4_SB
(
inode
->
i_sb
)
->
s_journal
;
...
...
fs/ext4/hash.c
浏览文件 @
af5bc92d
...
...
@@ -27,7 +27,7 @@ static void TEA_transform(__u32 buf[4], __u32 const in[])
sum
+=
DELTA
;
b0
+=
((
b1
<<
4
)
+
a
)
^
(
b1
+
sum
)
^
((
b1
>>
5
)
+
b
);
b1
+=
((
b0
<<
4
)
+
c
)
^
(
b0
+
sum
)
^
((
b0
>>
5
)
+
d
);
}
while
(
--
n
);
}
while
(
--
n
);
buf
[
0
]
+=
b0
;
buf
[
1
]
+=
b1
;
...
...
@@ -35,7 +35,7 @@ static void TEA_transform(__u32 buf[4], __u32 const in[])
/* The old legacy hash */
static
__u32
dx_hack_hash
(
const
char
*
name
,
int
len
)
static
__u32
dx_hack_hash
(
const
char
*
name
,
int
len
)
{
__u32
hash0
=
0x12a3fe2d
,
hash1
=
0x37abe8f9
;
while
(
len
--
)
{
...
...
@@ -59,7 +59,7 @@ static void str2hashbuf(const char *msg, int len, __u32 *buf, int num)
val
=
pad
;
if
(
len
>
num
*
4
)
len
=
num
*
4
;
for
(
i
=
0
;
i
<
len
;
i
++
)
{
for
(
i
=
0
;
i
<
len
;
i
++
)
{
if
((
i
%
4
)
==
0
)
val
=
pad
;
val
=
msg
[
i
]
+
(
val
<<
8
);
...
...
@@ -104,7 +104,7 @@ int ext4fs_dirhash(const char *name, int len, struct dx_hash_info *hinfo)
/* Check to see if the seed is all zero's */
if
(
hinfo
->
seed
)
{
for
(
i
=
0
;
i
<
4
;
i
++
)
{
for
(
i
=
0
;
i
<
4
;
i
++
)
{
if
(
hinfo
->
seed
[
i
])
break
;
}
...
...
fs/ext4/ialloc.c
浏览文件 @
af5bc92d
...
...
@@ -154,17 +154,17 @@ ext4_read_inode_bitmap(struct super_block *sb, ext4_group_t block_group)
* though), and then we'd have two inodes sharing the
* same inode number and space on the harddisk.
*/
void
ext4_free_inode
(
handle_t
*
handle
,
struct
inode
*
inode
)
void
ext4_free_inode
(
handle_t
*
handle
,
struct
inode
*
inode
)
{
struct
super_block
*
sb
=
inode
->
i_sb
;
struct
super_block
*
sb
=
inode
->
i_sb
;
int
is_directory
;
unsigned
long
ino
;
struct
buffer_head
*
bitmap_bh
=
NULL
;
struct
buffer_head
*
bh2
;
ext4_group_t
block_group
;
unsigned
long
bit
;
struct
ext4_group_desc
*
gdp
;
struct
ext4_super_block
*
es
;
struct
ext4_group_desc
*
gdp
;
struct
ext4_super_block
*
es
;
struct
ext4_sb_info
*
sbi
;
int
fatal
=
0
,
err
;
ext4_group_t
flex_group
;
...
...
@@ -187,7 +187,7 @@ void ext4_free_inode (handle_t *handle, struct inode * inode)
sbi
=
EXT4_SB
(
sb
);
ino
=
inode
->
i_ino
;
ext4_debug
(
"freeing inode %lu
\n
"
,
ino
);
ext4_debug
(
"freeing inode %lu
\n
"
,
ino
);
/*
* Note: we must free any quota before locking the superblock,
...
...
@@ -201,12 +201,12 @@ void ext4_free_inode (handle_t *handle, struct inode * inode)
is_directory
=
S_ISDIR
(
inode
->
i_mode
);
/* Do this BEFORE marking the inode not in use or returning an error */
clear_inode
(
inode
);
clear_inode
(
inode
);
es
=
EXT4_SB
(
sb
)
->
s_es
;
if
(
ino
<
EXT4_FIRST_INO
(
sb
)
||
ino
>
le32_to_cpu
(
es
->
s_inodes_count
))
{
ext4_error
(
sb
,
"ext4_free_inode"
,
"reserved or nonexistent inode %lu"
,
ino
);
ext4_error
(
sb
,
"ext4_free_inode"
,
"reserved or nonexistent inode %lu"
,
ino
);
goto
error_return
;
}
block_group
=
(
ino
-
1
)
/
EXT4_INODES_PER_GROUP
(
sb
);
...
...
@@ -223,10 +223,10 @@ void ext4_free_inode (handle_t *handle, struct inode * inode)
/* Ok, now we can actually update the inode bitmaps.. */
if
(
!
ext4_clear_bit_atomic
(
sb_bgl_lock
(
sbi
,
block_group
),
bit
,
bitmap_bh
->
b_data
))
ext4_error
(
sb
,
"ext4_free_inode"
,
"bit already cleared for inode %lu"
,
ino
);
ext4_error
(
sb
,
"ext4_free_inode"
,
"bit already cleared for inode %lu"
,
ino
);
else
{
gdp
=
ext4_get_group_desc
(
sb
,
block_group
,
&
bh2
);
gdp
=
ext4_get_group_desc
(
sb
,
block_group
,
&
bh2
);
BUFFER_TRACE
(
bh2
,
"get_write_access"
);
fatal
=
ext4_journal_get_write_access
(
handle
,
bh2
);
...
...
@@ -288,7 +288,7 @@ static int find_group_dir(struct super_block *sb, struct inode *parent,
avefreei
=
freei
/
ngroups
;
for
(
group
=
0
;
group
<
ngroups
;
group
++
)
{
desc
=
ext4_get_group_desc
(
sb
,
group
,
NULL
);
desc
=
ext4_get_group_desc
(
sb
,
group
,
NULL
);
if
(
!
desc
||
!
desc
->
bg_free_inodes_count
)
continue
;
if
(
le16_to_cpu
(
desc
->
bg_free_inodes_count
)
<
avefreei
)
...
...
@@ -577,16 +577,16 @@ static int find_group_other(struct super_block *sb, struct inode *parent,
* For other inodes, search forward from the parent directory's block
* group to find a free inode.
*/
struct
inode
*
ext4_new_inode
(
handle_t
*
handle
,
struct
inode
*
dir
,
int
mode
)
struct
inode
*
ext4_new_inode
(
handle_t
*
handle
,
struct
inode
*
dir
,
int
mode
)
{
struct
super_block
*
sb
;
struct
buffer_head
*
bitmap_bh
=
NULL
;
struct
buffer_head
*
bh2
;
ext4_group_t
group
=
0
;
unsigned
long
ino
=
0
;
struct
inode
*
inode
;
struct
ext4_group_desc
*
gdp
=
NULL
;
struct
ext4_super_block
*
es
;
struct
inode
*
inode
;
struct
ext4_group_desc
*
gdp
=
NULL
;
struct
ext4_super_block
*
es
;
struct
ext4_inode_info
*
ei
;
struct
ext4_sb_info
*
sbi
;
int
ret2
,
err
=
0
;
...
...
@@ -614,7 +614,7 @@ struct inode *ext4_new_inode(handle_t *handle, struct inode * dir, int mode)
}
if
(
S_ISDIR
(
mode
))
{
if
(
test_opt
(
sb
,
OLDALLOC
))
if
(
test_opt
(
sb
,
OLDALLOC
))
ret2
=
find_group_dir
(
sb
,
dir
,
&
group
);
else
ret2
=
find_group_orlov
(
sb
,
dir
,
&
group
);
...
...
@@ -784,7 +784,7 @@ struct inode *ext4_new_inode(handle_t *handle, struct inode * dir, int mode)
}
inode
->
i_uid
=
current
->
fsuid
;
if
(
test_opt
(
sb
,
GRPID
))
if
(
test_opt
(
sb
,
GRPID
))
inode
->
i_gid
=
dir
->
i_gid
;
else
if
(
dir
->
i_mode
&
S_ISGID
)
{
inode
->
i_gid
=
dir
->
i_gid
;
...
...
@@ -833,7 +833,7 @@ struct inode *ext4_new_inode(handle_t *handle, struct inode * dir, int mode)
ei
->
i_extra_isize
=
EXT4_SB
(
sb
)
->
s_want_extra_isize
;
ret
=
inode
;
if
(
DQUOT_ALLOC_INODE
(
inode
))
{
if
(
DQUOT_ALLOC_INODE
(
inode
))
{
err
=
-
EDQUOT
;
goto
fail_drop
;
}
...
...
@@ -842,7 +842,7 @@ struct inode *ext4_new_inode(handle_t *handle, struct inode * dir, int mode)
if
(
err
)
goto
fail_free_drop
;
err
=
ext4_init_security
(
handle
,
inode
,
dir
);
err
=
ext4_init_security
(
handle
,
inode
,
dir
);
if
(
err
)
goto
fail_free_drop
;
...
...
@@ -960,7 +960,7 @@ struct inode *ext4_orphan_get(struct super_block *sb, unsigned long ino)
return
ERR_PTR
(
err
);
}
unsigned
long
ext4_count_free_inodes
(
struct
super_block
*
sb
)
unsigned
long
ext4_count_free_inodes
(
struct
super_block
*
sb
)
{
unsigned
long
desc_count
;
struct
ext4_group_desc
*
gdp
;
...
...
@@ -975,7 +975,7 @@ unsigned long ext4_count_free_inodes (struct super_block * sb)
bitmap_count
=
0
;
gdp
=
NULL
;
for
(
i
=
0
;
i
<
EXT4_SB
(
sb
)
->
s_groups_count
;
i
++
)
{
gdp
=
ext4_get_group_desc
(
sb
,
i
,
NULL
);
gdp
=
ext4_get_group_desc
(
sb
,
i
,
NULL
);
if
(
!
gdp
)
continue
;
desc_count
+=
le16_to_cpu
(
gdp
->
bg_free_inodes_count
);
...
...
@@ -997,7 +997,7 @@ unsigned long ext4_count_free_inodes (struct super_block * sb)
#else
desc_count
=
0
;
for
(
i
=
0
;
i
<
EXT4_SB
(
sb
)
->
s_groups_count
;
i
++
)
{
gdp
=
ext4_get_group_desc
(
sb
,
i
,
NULL
);
gdp
=
ext4_get_group_desc
(
sb
,
i
,
NULL
);
if
(
!
gdp
)
continue
;
desc_count
+=
le16_to_cpu
(
gdp
->
bg_free_inodes_count
);
...
...
@@ -1008,13 +1008,13 @@ unsigned long ext4_count_free_inodes (struct super_block * sb)
}
/* Called at mount-time, super-block is locked */
unsigned
long
ext4_count_dirs
(
struct
super_block
*
sb
)
unsigned
long
ext4_count_dirs
(
struct
super_block
*
sb
)
{
unsigned
long
count
=
0
;
ext4_group_t
i
;
for
(
i
=
0
;
i
<
EXT4_SB
(
sb
)
->
s_groups_count
;
i
++
)
{
struct
ext4_group_desc
*
gdp
=
ext4_get_group_desc
(
sb
,
i
,
NULL
);
struct
ext4_group_desc
*
gdp
=
ext4_get_group_desc
(
sb
,
i
,
NULL
);
if
(
!
gdp
)
continue
;
count
+=
le16_to_cpu
(
gdp
->
bg_used_dirs_count
);
...
...
fs/ext4/inode.c
浏览文件 @
af5bc92d
...
...
@@ -190,7 +190,7 @@ static int ext4_journal_test_restart(handle_t *handle, struct inode *inode)
/*
* Called at the last iput() if i_nlink is zero.
*/
void
ext4_delete_inode
(
struct
inode
*
inode
)
void
ext4_delete_inode
(
struct
inode
*
inode
)
{
handle_t
*
handle
;
int
err
;
...
...
@@ -330,11 +330,11 @@ static int ext4_block_to_path(struct inode *inode,
int
final
=
0
;
if
(
i_block
<
0
)
{
ext4_warning
(
inode
->
i_sb
,
"ext4_block_to_path"
,
"block < 0"
);
ext4_warning
(
inode
->
i_sb
,
"ext4_block_to_path"
,
"block < 0"
);
}
else
if
(
i_block
<
direct_blocks
)
{
offsets
[
n
++
]
=
i_block
;
final
=
direct_blocks
;
}
else
if
(
(
i_block
-=
direct_blocks
)
<
indirect_blocks
)
{
}
else
if
((
i_block
-=
direct_blocks
)
<
indirect_blocks
)
{
offsets
[
n
++
]
=
EXT4_IND_BLOCK
;
offsets
[
n
++
]
=
i_block
;
final
=
ptrs
;
...
...
@@ -400,14 +400,14 @@ static Indirect *ext4_get_branch(struct inode *inode, int depth,
*
err
=
0
;
/* i_data is not going away, no lock needed */
add_chain
(
chain
,
NULL
,
EXT4_I
(
inode
)
->
i_data
+
*
offsets
);
add_chain
(
chain
,
NULL
,
EXT4_I
(
inode
)
->
i_data
+
*
offsets
);
if
(
!
p
->
key
)
goto
no_block
;
while
(
--
depth
)
{
bh
=
sb_bread
(
sb
,
le32_to_cpu
(
p
->
key
));
if
(
!
bh
)
goto
failure
;
add_chain
(
++
p
,
bh
,
(
__le32
*
)
bh
->
b_data
+
*++
offsets
);
add_chain
(
++
p
,
bh
,
(
__le32
*
)
bh
->
b_data
+
*++
offsets
);
/* Reader: end */
if
(
!
p
->
key
)
goto
no_block
;
...
...
@@ -443,7 +443,7 @@ static Indirect *ext4_get_branch(struct inode *inode, int depth,
static
ext4_fsblk_t
ext4_find_near
(
struct
inode
*
inode
,
Indirect
*
ind
)
{
struct
ext4_inode_info
*
ei
=
EXT4_I
(
inode
);
__le32
*
start
=
ind
->
bh
?
(
__le32
*
)
ind
->
bh
->
b_data
:
ei
->
i_data
;
__le32
*
start
=
ind
->
bh
?
(
__le32
*
)
ind
->
bh
->
b_data
:
ei
->
i_data
;
__le32
*
p
;
ext4_fsblk_t
bg_start
;
ext4_fsblk_t
last_block
;
...
...
@@ -630,7 +630,7 @@ static int ext4_alloc_blocks(handle_t *handle, struct inode *inode,
*
err
=
0
;
return
ret
;
failed_out:
for
(
i
=
0
;
i
<
index
;
i
++
)
for
(
i
=
0
;
i
<
index
;
i
++
)
ext4_free_blocks
(
handle
,
inode
,
new_blocks
[
i
],
1
,
0
);
return
ret
;
}
...
...
@@ -703,7 +703,7 @@ static int ext4_alloc_branch(handle_t *handle, struct inode *inode,
branch
[
n
].
p
=
(
__le32
*
)
bh
->
b_data
+
offsets
[
n
];
branch
[
n
].
key
=
cpu_to_le32
(
new_blocks
[
n
]);
*
branch
[
n
].
p
=
branch
[
n
].
key
;
if
(
n
==
indirect_blks
)
{
if
(
n
==
indirect_blks
)
{
current_block
=
new_blocks
[
n
];
/*
* End of chain, update the last new metablock of
...
...
@@ -730,7 +730,7 @@ static int ext4_alloc_branch(handle_t *handle, struct inode *inode,
BUFFER_TRACE
(
branch
[
i
].
bh
,
"call jbd2_journal_forget"
);
ext4_journal_forget
(
handle
,
branch
[
i
].
bh
);
}
for
(
i
=
0
;
i
<
indirect_blks
;
i
++
)
for
(
i
=
0
;
i
<
indirect_blks
;
i
++
)
ext4_free_blocks
(
handle
,
inode
,
new_blocks
[
i
],
1
,
0
);
ext4_free_blocks
(
handle
,
inode
,
new_blocks
[
i
],
num
,
0
);
...
...
@@ -783,7 +783,7 @@ static int ext4_splice_branch(handle_t *handle, struct inode *inode,
if
(
num
==
0
&&
blks
>
1
)
{
current_block
=
le32_to_cpu
(
where
->
key
)
+
1
;
for
(
i
=
1
;
i
<
blks
;
i
++
)
*
(
where
->
p
+
i
)
=
cpu_to_le32
(
current_block
++
);
*
(
where
->
p
+
i
)
=
cpu_to_le32
(
current_block
++
);
}
/*
...
...
@@ -1241,7 +1241,7 @@ struct buffer_head *ext4_getblk(handle_t *handle, struct inode *inode,
BUFFER_TRACE
(
bh
,
"call get_create_access"
);
fatal
=
ext4_journal_get_create_access
(
handle
,
bh
);
if
(
!
fatal
&&
!
buffer_uptodate
(
bh
))
{
memset
(
bh
->
b_data
,
0
,
inode
->
i_sb
->
s_blocksize
);
memset
(
bh
->
b_data
,
0
,
inode
->
i_sb
->
s_blocksize
);
set_buffer_uptodate
(
bh
);
}
unlock_buffer
(
bh
);
...
...
@@ -1266,7 +1266,7 @@ struct buffer_head *ext4_getblk(handle_t *handle, struct inode *inode,
struct
buffer_head
*
ext4_bread
(
handle_t
*
handle
,
struct
inode
*
inode
,
ext4_lblk_t
block
,
int
create
,
int
*
err
)
{
struct
buffer_head
*
bh
;
struct
buffer_head
*
bh
;
bh
=
ext4_getblk
(
handle
,
inode
,
block
,
create
,
err
);
if
(
!
bh
)
...
...
@@ -1282,13 +1282,13 @@ struct buffer_head *ext4_bread(handle_t *handle, struct inode *inode,
return
NULL
;
}
static
int
walk_page_buffers
(
handle_t
*
handle
,
struct
buffer_head
*
head
,
unsigned
from
,
unsigned
to
,
int
*
partial
,
int
(
*
fn
)(
handle_t
*
handle
,
struct
buffer_head
*
bh
))
static
int
walk_page_buffers
(
handle_t
*
handle
,
struct
buffer_head
*
head
,
unsigned
from
,
unsigned
to
,
int
*
partial
,
int
(
*
fn
)(
handle_t
*
handle
,
struct
buffer_head
*
bh
))
{
struct
buffer_head
*
bh
;
unsigned
block_start
,
block_end
;
...
...
@@ -1296,9 +1296,9 @@ static int walk_page_buffers( handle_t *handle,
int
err
,
ret
=
0
;
struct
buffer_head
*
next
;
for
(
bh
=
head
,
block_start
=
0
;
ret
==
0
&&
(
bh
!=
head
||
!
block_start
);
block_start
=
block_end
,
bh
=
next
)
for
(
bh
=
head
,
block_start
=
0
;
ret
==
0
&&
(
bh
!=
head
||
!
block_start
);
block_start
=
block_end
,
bh
=
next
)
{
next
=
bh
->
b_this_page
;
block_end
=
block_start
+
blocksize
;
...
...
@@ -1351,23 +1351,23 @@ static int ext4_write_begin(struct file *file, struct address_space *mapping,
loff_t
pos
,
unsigned
len
,
unsigned
flags
,
struct
page
**
pagep
,
void
**
fsdata
)
{
struct
inode
*
inode
=
mapping
->
host
;
struct
inode
*
inode
=
mapping
->
host
;
int
ret
,
needed_blocks
=
ext4_writepage_trans_blocks
(
inode
);
handle_t
*
handle
;
int
retries
=
0
;
struct
page
*
page
;
struct
page
*
page
;
pgoff_t
index
;
unsigned
from
,
to
;
unsigned
from
,
to
;
index
=
pos
>>
PAGE_CACHE_SHIFT
;
from
=
pos
&
(
PAGE_CACHE_SIZE
-
1
);
to
=
from
+
len
;
from
=
pos
&
(
PAGE_CACHE_SIZE
-
1
);
to
=
from
+
len
;
retry:
handle
=
ext4_journal_start
(
inode
,
needed_blocks
);
if
(
IS_ERR
(
handle
))
{
ret
=
PTR_ERR
(
handle
);
goto
out
;
handle
=
ext4_journal_start
(
inode
,
needed_blocks
);
if
(
IS_ERR
(
handle
))
{
ret
=
PTR_ERR
(
handle
);
goto
out
;
}
page
=
__grab_cache_page
(
mapping
,
index
);
...
...
@@ -1387,9 +1387,9 @@ static int ext4_write_begin(struct file *file, struct address_space *mapping,
}
if
(
ret
)
{
unlock_page
(
page
);
unlock_page
(
page
);
ext4_journal_stop
(
handle
);
page_cache_release
(
page
);
page_cache_release
(
page
);
}
if
(
ret
==
-
ENOSPC
&&
ext4_should_retry_alloc
(
inode
->
i_sb
,
&
retries
))
...
...
@@ -2456,7 +2456,7 @@ static int ext4_da_should_update_i_disksize(struct page *page,
bh
=
page_buffers
(
page
);
idx
=
offset
>>
inode
->
i_blkbits
;
for
(
i
=
0
;
i
<
idx
;
i
++
)
for
(
i
=
0
;
i
<
idx
;
i
++
)
bh
=
bh
->
b_this_page
;
if
(
!
buffer_mapped
(
bh
)
||
(
buffer_delay
(
bh
)))
...
...
@@ -2476,7 +2476,7 @@ static int ext4_da_write_end(struct file *file,
unsigned
long
start
,
end
;
start
=
pos
&
(
PAGE_CACHE_SIZE
-
1
);
end
=
start
+
copied
-
1
;
end
=
start
+
copied
-
1
;
/*
* generic_write_end() will run mark_inode_dirty() if i_size
...
...
@@ -2591,7 +2591,7 @@ static sector_t ext4_bmap(struct address_space *mapping, sector_t block)
return
0
;
}
return
generic_block_bmap
(
mapping
,
block
,
ext4_get_block
);
return
generic_block_bmap
(
mapping
,
block
,
ext4_get_block
);
}
static
int
bget_one
(
handle_t
*
handle
,
struct
buffer_head
*
bh
)
...
...
@@ -3197,7 +3197,7 @@ static Indirect *ext4_find_shared(struct inode *inode, int depth,
if
(
!
partial
->
key
&&
*
partial
->
p
)
/* Writer: end */
goto
no_top
;
for
(
p
=
partial
;
p
>
chain
&&
all_zeroes
((
__le32
*
)
p
->
bh
->
b_data
,
p
->
p
);
p
--
)
for
(
p
=
partial
;
(
p
>
chain
)
&&
all_zeroes
((
__le32
*
)
p
->
bh
->
b_data
,
p
->
p
);
p
--
)
;
/*
* OK, we've found the last block that must survive. The rest of our
...
...
@@ -3216,7 +3216,7 @@ static Indirect *ext4_find_shared(struct inode *inode, int depth,
}
/* Writer: end */
while
(
partial
>
p
)
{
while
(
partial
>
p
)
{
brelse
(
partial
->
bh
);
partial
--
;
}
...
...
@@ -3408,9 +3408,9 @@ static void ext4_free_branches(handle_t *handle, struct inode *inode,
/* This zaps the entire block. Bottom up. */
BUFFER_TRACE
(
bh
,
"free child branches"
);
ext4_free_branches
(
handle
,
inode
,
bh
,
(
__le32
*
)
bh
->
b_data
,
(
__le32
*
)
bh
->
b_data
+
addr_per_block
,
depth
);
(
__le32
*
)
bh
->
b_data
,
(
__le32
*
)
bh
->
b_data
+
addr_per_block
,
depth
);
/*
* We've probably journalled the indirect block several
...
...
@@ -3927,7 +3927,7 @@ struct inode *ext4_iget(struct super_block *sb, unsigned long ino)
inode
->
i_mode
=
le16_to_cpu
(
raw_inode
->
i_mode
);
inode
->
i_uid
=
(
uid_t
)
le16_to_cpu
(
raw_inode
->
i_uid_low
);
inode
->
i_gid
=
(
gid_t
)
le16_to_cpu
(
raw_inode
->
i_gid_low
);
if
(
!
(
test_opt
(
inode
->
i_sb
,
NO_UID32
)))
{
if
(
!
(
test_opt
(
inode
->
i_sb
,
NO_UID32
)))
{
inode
->
i_uid
|=
le16_to_cpu
(
raw_inode
->
i_uid_high
)
<<
16
;
inode
->
i_gid
|=
le16_to_cpu
(
raw_inode
->
i_gid_high
)
<<
16
;
}
...
...
@@ -3945,7 +3945,7 @@ struct inode *ext4_iget(struct super_block *sb, unsigned long ino)
if
(
inode
->
i_mode
==
0
||
!
(
EXT4_SB
(
inode
->
i_sb
)
->
s_mount_state
&
EXT4_ORPHAN_FS
))
{
/* this inode is deleted */
brelse
(
bh
);
brelse
(
bh
);
ret
=
-
ESTALE
;
goto
bad_inode
;
}
...
...
@@ -3978,7 +3978,7 @@ struct inode *ext4_iget(struct super_block *sb, unsigned long ino)
ei
->
i_extra_isize
=
le16_to_cpu
(
raw_inode
->
i_extra_isize
);
if
(
EXT4_GOOD_OLD_INODE_SIZE
+
ei
->
i_extra_isize
>
EXT4_INODE_SIZE
(
inode
->
i_sb
))
{
brelse
(
bh
);
brelse
(
bh
);
ret
=
-
EIO
;
goto
bad_inode
;
}
...
...
@@ -4031,7 +4031,7 @@ struct inode *ext4_iget(struct super_block *sb, unsigned long ino)
init_special_inode
(
inode
,
inode
->
i_mode
,
new_decode_dev
(
le32_to_cpu
(
raw_inode
->
i_block
[
1
])));
}
brelse
(
iloc
.
bh
);
brelse
(
iloc
.
bh
);
ext4_set_inode_flags
(
inode
);
unlock_new_inode
(
inode
);
return
inode
;
...
...
@@ -4113,14 +4113,14 @@ static int ext4_do_update_inode(handle_t *handle,
ext4_get_inode_flags
(
ei
);
raw_inode
->
i_mode
=
cpu_to_le16
(
inode
->
i_mode
);
if
(
!
(
test_opt
(
inode
->
i_sb
,
NO_UID32
)))
{
if
(
!
(
test_opt
(
inode
->
i_sb
,
NO_UID32
)))
{
raw_inode
->
i_uid_low
=
cpu_to_le16
(
low_16_bits
(
inode
->
i_uid
));
raw_inode
->
i_gid_low
=
cpu_to_le16
(
low_16_bits
(
inode
->
i_gid
));
/*
* Fix up interoperability with old kernels. Otherwise, old inodes get
* re-used with the upper 16 bits of the uid/gid intact
*/
if
(
!
ei
->
i_dtime
)
{
if
(
!
ei
->
i_dtime
)
{
raw_inode
->
i_uid_high
=
cpu_to_le16
(
high_16_bits
(
inode
->
i_uid
));
raw_inode
->
i_gid_high
=
...
...
@@ -4208,7 +4208,7 @@ static int ext4_do_update_inode(handle_t *handle,
ei
->
i_state
&=
~
EXT4_STATE_NEW
;
out_brelse:
brelse
(
bh
);
brelse
(
bh
);
ext4_std_error
(
inode
->
i_sb
,
err
);
return
err
;
}
...
...
fs/ext4/ioctl.c
浏览文件 @
af5bc92d
...
...
@@ -25,7 +25,7 @@ long ext4_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
unsigned
int
flags
;
unsigned
short
rsv_window_size
;
ext4_debug
(
"cmd = %u, arg = %lu
\n
"
,
cmd
,
arg
);
ext4_debug
(
"cmd = %u, arg = %lu
\n
"
,
cmd
,
arg
);
switch
(
cmd
)
{
case
EXT4_IOC_GETFLAGS
:
...
...
@@ -186,7 +186,7 @@ long ext4_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
case
EXT4_IOC_SETRSVSZ
:
{
int
err
;
if
(
!
test_opt
(
inode
->
i_sb
,
RESERVATION
)
||!
S_ISREG
(
inode
->
i_mode
))
if
(
!
test_opt
(
inode
->
i_sb
,
RESERVATION
)
||
!
S_ISREG
(
inode
->
i_mode
))
return
-
ENOTTY
;
if
(
!
is_owner_or_cap
(
inode
))
...
...
fs/ext4/namei.c
浏览文件 @
af5bc92d
此差异已折叠。
点击以展开。
fs/ext4/resize.c
浏览文件 @
af5bc92d
...
...
@@ -416,8 +416,8 @@ static int add_new_gdb(handle_t *handle, struct inode *inode,
"EXT4-fs: ext4_add_new_gdb: adding group block %lu
\n
"
,
gdb_num
);
/*
* If we are not using the primary superblock/GDT copy don't resize,
/*
* If we are not using the primary superblock/GDT copy don't resize,
* because the user tools have no way of handling this. Probably a
* bad time to do it anyways.
*/
...
...
@@ -964,7 +964,7 @@ int ext4_group_extend(struct super_block *sb, struct ext4_super_block *es,
ext4_group_t
o_groups_count
;
ext4_grpblk_t
last
;
ext4_grpblk_t
add
;
struct
buffer_head
*
bh
;
struct
buffer_head
*
bh
;
handle_t
*
handle
;
int
err
;
unsigned
long
freed_blocks
;
...
...
fs/ext4/super.c
浏览文件 @
af5bc92d
...
...
@@ -654,7 +654,7 @@ static inline void ext4_show_quota_options(struct seq_file *seq,
if
(
sbi
->
s_jquota_fmt
)
seq_printf
(
seq
,
",jqfmt=%s"
,
(
sbi
->
s_jquota_fmt
==
QFMT_VFS_OLD
)
?
"vfsold"
:
"vfsv0"
);
(
sbi
->
s_jquota_fmt
==
QFMT_VFS_OLD
)
?
"vfsold"
:
"vfsv0"
);
if
(
sbi
->
s_qf_names
[
USRQUOTA
])
seq_printf
(
seq
,
",usrjquota=%s"
,
sbi
->
s_qf_names
[
USRQUOTA
]);
...
...
@@ -822,7 +822,7 @@ static struct dentry *ext4_fh_to_parent(struct super_block *sb, struct fid *fid,
}
#ifdef CONFIG_QUOTA
#define QTYPE2NAME(t) ((t) == USRQUOTA
?"user":
"group")
#define QTYPE2NAME(t) ((t) == USRQUOTA
? "user" :
"group")
#define QTYPE2MOPT(on, t) ((t) == USRQUOTA?((on)##USRJQUOTA):((on)##GRPJQUOTA))
static
int
ext4_dquot_initialize
(
struct
inode
*
inode
,
int
type
);
...
...
@@ -1586,7 +1586,7 @@ static int ext4_check_descriptors(struct super_block *sb)
if
(
EXT4_HAS_INCOMPAT_FEATURE
(
sb
,
EXT4_FEATURE_INCOMPAT_FLEX_BG
))
flexbg_flag
=
1
;
ext4_debug
(
"Checking group descriptors"
);
ext4_debug
(
"Checking group descriptors"
);
for
(
i
=
0
;
i
<
sbi
->
s_groups_count
;
i
++
)
{
struct
ext4_group_desc
*
gdp
=
ext4_get_group_desc
(
sb
,
i
,
NULL
);
...
...
fs/ext4/symlink.c
浏览文件 @
af5bc92d
...
...
@@ -23,10 +23,10 @@
#include "ext4.h"
#include "xattr.h"
static
void
*
ext4_follow_link
(
struct
dentry
*
dentry
,
struct
nameidata
*
nd
)
static
void
*
ext4_follow_link
(
struct
dentry
*
dentry
,
struct
nameidata
*
nd
)
{
struct
ext4_inode_info
*
ei
=
EXT4_I
(
dentry
->
d_inode
);
nd_set_link
(
nd
,
(
char
*
)
ei
->
i_data
);
nd_set_link
(
nd
,
(
char
*
)
ei
->
i_data
);
return
NULL
;
}
...
...
fs/ext4/xattr.h
浏览文件 @
af5bc92d
...
...
@@ -51,8 +51,8 @@ struct ext4_xattr_entry {
(((name_len) + EXT4_XATTR_ROUND + \
sizeof(struct ext4_xattr_entry)) & ~EXT4_XATTR_ROUND)
#define EXT4_XATTR_NEXT(entry) \
(
(struct ext4_xattr_entry *)( \
(char *)(entry) + EXT4_XATTR_LEN((entry)->e_name_len))
)
((struct ext4_xattr_entry *)( \
(char *)(entry) + EXT4_XATTR_LEN((entry)->e_name_len))
)
#define EXT4_XATTR_SIZE(size) \
(((size) + EXT4_XATTR_ROUND) & ~EXT4_XATTR_ROUND)
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录