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
Kirill Smelkov
linux
Commits
f8b3b59d
Commit
f8b3b59d
authored
Aug 29, 2014
by
Theodore Ts'o
1
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
ext4: convert do_split() to use the ERR_PTR convention
Signed-off-by:
Theodore Ts'o
<
tytso@mit.edu
>
parent
dd73b5d5
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
11 additions
and
12 deletions
+11
-12
fs/ext4/namei.c
fs/ext4/namei.c
+11
-12
No files found.
fs/ext4/namei.c
View file @
f8b3b59d
...
...
@@ -1509,7 +1509,7 @@ static struct ext4_dir_entry_2* dx_pack_dirents(char *base, unsigned blocksize)
*/
static
struct
ext4_dir_entry_2
*
do_split
(
handle_t
*
handle
,
struct
inode
*
dir
,
struct
buffer_head
**
bh
,
struct
dx_frame
*
frame
,
struct
dx_hash_info
*
hinfo
,
int
*
error
)
struct
dx_hash_info
*
hinfo
)
{
unsigned
blocksize
=
dir
->
i_sb
->
s_blocksize
;
unsigned
count
,
continued
;
...
...
@@ -1532,8 +1532,7 @@ static struct ext4_dir_entry_2 *do_split(handle_t *handle, struct inode *dir,
if
(
IS_ERR
(
bh2
))
{
brelse
(
*
bh
);
*
bh
=
NULL
;
*
error
=
PTR_ERR
(
bh2
);
return
NULL
;
return
(
struct
ext4_dir_entry_2
*
)
bh2
;
}
BUFFER_TRACE
(
*
bh
,
"get_write_access"
);
...
...
@@ -1593,8 +1592,7 @@ static struct ext4_dir_entry_2 *do_split(handle_t *handle, struct inode *dir,
dxtrace
(
dx_show_leaf
(
hinfo
,
(
struct
ext4_dir_entry_2
*
)
data2
,
blocksize
,
1
));
/* Which block gets the new entry? */
if
(
hinfo
->
hash
>=
hash2
)
{
if
(
hinfo
->
hash
>=
hash2
)
{
swap
(
*
bh
,
bh2
);
de
=
de2
;
}
...
...
@@ -1614,8 +1612,7 @@ static struct ext4_dir_entry_2 *do_split(handle_t *handle, struct inode *dir,
brelse
(
bh2
);
*
bh
=
NULL
;
ext4_std_error
(
dir
->
i_sb
,
err
);
*
error
=
err
;
return
NULL
;
return
ERR_PTR
(
err
);
}
int
ext4_find_dest_de
(
struct
inode
*
dir
,
struct
inode
*
inode
,
...
...
@@ -1838,8 +1835,8 @@ static int make_indexed_dir(handle_t *handle, struct dentry *dentry,
ext4_handle_dirty_dx_node
(
handle
,
dir
,
frame
->
bh
);
ext4_handle_dirty_dirent_node
(
handle
,
dir
,
bh
);
de
=
do_split
(
handle
,
dir
,
&
bh
,
frame
,
&
hinfo
,
&
retval
);
if
(
!
de
)
{
de
=
do_split
(
handle
,
dir
,
&
bh
,
frame
,
&
hinfo
);
if
(
IS_ERR
(
de
)
)
{
/*
* Even if the block split failed, we have to properly write
* out all the changes we did so far. Otherwise we can end up
...
...
@@ -1847,7 +1844,7 @@ static int make_indexed_dir(handle_t *handle, struct dentry *dentry,
*/
ext4_mark_inode_dirty
(
handle
,
dir
);
dx_release
(
frames
);
return
retval
;
return
PTR_ERR
(
de
)
;
}
dx_release
(
frames
);
...
...
@@ -2071,9 +2068,11 @@ static int ext4_dx_add_entry(handle_t *handle, struct dentry *dentry,
goto
cleanup
;
}
}
de
=
do_split
(
handle
,
dir
,
&
bh
,
frame
,
&
hinfo
,
&
err
);
if
(
!
de
)
de
=
do_split
(
handle
,
dir
,
&
bh
,
frame
,
&
hinfo
);
if
(
IS_ERR
(
de
))
{
err
=
PTR_ERR
(
de
);
goto
cleanup
;
}
err
=
add_dirent_to_buf
(
handle
,
dentry
,
inode
,
de
,
bh
);
goto
cleanup
;
...
...
Kirill Smelkov
@kirr
mentioned in commit
401bd723
·
Jun 08, 2016
mentioned in commit
401bd723
mentioned in commit 401bd72378eafa72eabddf7a4f89f3e6e4508767
Toggle commit list
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