ext4: allow a NULL argument to ext4_ext_drop_refs()

Teach ext4_ext_drop_refs() to accept a NULL argument, much like
kfree().  This allows us to drop a lot of checks to make sure path is
non-NULL before calling ext4_ext_drop_refs().

Signed-off-by: Theodore Ts'o <tytso@mit.edu>
This commit is contained in:
Theodore Ts'o
2014-09-01 14:39:09 -04:00
parent 523f431ccf
commit b7ea89ad0a
4 changed files with 29 additions and 51 deletions

View File

@@ -709,9 +709,11 @@ static void ext4_ext_show_move(struct inode *inode, struct ext4_ext_path *path,
void ext4_ext_drop_refs(struct ext4_ext_path *path)
{
int depth = path->p_depth;
int i;
int depth, i;
if (!path)
return;
depth = path->p_depth;
for (i = 0; i <= depth; i++, path++)
if (path->p_bh) {
brelse(path->p_bh);
@@ -2125,10 +2127,8 @@ merge:
err = ext4_ext_dirty(handle, inode, path + path->p_depth);
cleanup:
if (npath) {
ext4_ext_drop_refs(npath);
kfree(npath);
}
ext4_ext_drop_refs(npath);
kfree(npath);
return err;
}
@@ -2283,11 +2283,8 @@ static int ext4_fill_fiemap_extents(struct inode *inode,
block = es.es_lblk + es.es_len;
}
if (path) {
ext4_ext_drop_refs(path);
kfree(path);
}
ext4_ext_drop_refs(path);
kfree(path);
return err;
}
@@ -3018,11 +3015,9 @@ again:
}
}
out:
if (path) {
ext4_ext_drop_refs(path);
kfree(path);
path = NULL;
}
ext4_ext_drop_refs(path);
kfree(path);
path = NULL;
if (err == -EAGAIN)
goto again;
ext4_journal_stop(handle);
@@ -4611,10 +4606,8 @@ out:
map->m_pblk = newblock;
map->m_len = allocated;
out2:
if (path) {
ext4_ext_drop_refs(path);
kfree(path);
}
ext4_ext_drop_refs(path);
kfree(path);
trace_ext4_ext_map_blocks_exit(inode, flags, map,
err ? err : allocated);
@@ -5693,16 +5686,11 @@ ext4_swap_extents(handle_t *handle, struct inode *inode1,
count -= len;
repeat:
if (path1) {
ext4_ext_drop_refs(path1);
kfree(path1);
path1 = NULL;
}
if (path2) {
ext4_ext_drop_refs(path2);
kfree(path2);
path2 = NULL;
}
ext4_ext_drop_refs(path1);
kfree(path1);
ext4_ext_drop_refs(path2);
kfree(path2);
path1 = path2 = NULL;
}
return replaced_count;
}