Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
L
linux
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
nexedi
linux
Commits
af5bc92d
Commit
af5bc92d
authored
Sep 08, 2008
by
Theodore Ts'o
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
ext4: Fix whitespace checkpatch warnings/errors
Signed-off-by:
"Theodore Ts'o"
<
tytso@mit.edu
>
parent
e5f8eab8
Changes
18
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
18 changed files
with
350 additions
and
350 deletions
+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
No files found.
fs/ext4/acl.h
View file @
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
View file @
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,17 +200,17 @@ 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"
,
ext4_error
(
sb
,
"ext4_get_group_desc"
,
"block_group >= groups_count - "
"block_group = %lu, groups_count = %lu"
,
block_group
,
sbi
->
s_groups_count
);
...
...
@@ -222,7 +222,7 @@ 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"
,
ext4_error
(
sb
,
"ext4_get_group_desc"
,
"Group descriptor not loaded - "
"block_group = %lu, group_desc = %lu, desc = %lu"
,
block_group
,
group_desc
,
offset
);
...
...
@@ -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"
,
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,7 +705,7 @@ 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"
,
ext4_error
(
sb
,
"ext4_free_blocks"
,
"Freeing blocks in system zones - "
"Block = %llu, count = %lu"
,
block
,
count
);
...
...
@@ -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
View file @
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
View file @
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
,
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
,
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
View file @
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
,
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
,
...
...
fs/ext4/ext4_sb.h
View file @
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
View file @
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
View file @
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
View file @
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
View file @
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
View file @
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,11 +201,11 @@ 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"
,
ext4_error
(
sb
,
"ext4_free_inode"
,
"reserved or nonexistent inode %lu"
,
ino
);
goto
error_return
;
}
...
...
@@ -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"
,
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
View file @
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,12 +1282,12 @@ struct buffer_head *ext4_bread(handle_t *handle, struct inode *inode,
return
NULL
;
}
static
int
walk_page_buffers
(
handle_t
*
handle
,
static
int
walk_page_buffers
(
handle_t
*
handle
,
struct
buffer_head
*
head
,
unsigned
from
,
unsigned
to
,
int
*
partial
,
int
(
*
fn
)(
handle_t
*
handle
,
int
(
*
fn
)(
handle_t
*
handle
,
struct
buffer_head
*
bh
))
{
struct
buffer_head
*
bh
;
...
...
@@ -1296,7 +1296,7 @@ static int walk_page_buffers( handle_t *handle,
int
err
,
ret
=
0
;
struct
buffer_head
*
next
;
for
(
bh
=
head
,
block_start
=
0
;
for
(
bh
=
head
,
block_start
=
0
;
ret
==
0
&&
(
bh
!=
head
||
!
block_start
);
block_start
=
block_end
,
bh
=
next
)
{
...
...
@@ -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,8 +3408,8 @@ 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
,
(
__le32
*
)
bh
->
b_data
,
(
__le32
*
)
bh
->
b_data
+
addr_per_block
,
depth
);
/*
...
...
@@ -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
View file @
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
View file @
af5bc92d
This diff is collapsed.
Click to expand it.
fs/ext4/resize.c
View file @
af5bc92d
...
...
@@ -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
View file @
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
View file @
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
View file @
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)
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment