diff options
author | Theodore Ts'o <tytso@mit.edu> | 2014-09-01 14:39:09 -0400 |
---|---|---|
committer | Theodore Ts'o <tytso@mit.edu> | 2014-09-01 14:39:09 -0400 |
commit | b7ea89ad0a6b855172158a999d3f5008403f4011 (patch) | |
tree | f5e4df616627e426bdebef94042c286fbdff0360 /fs/ext4/move_extent.c | |
parent | 523f431ccfffd3022e80e13befb9594f54b5607e (diff) |
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>
Diffstat (limited to 'fs/ext4/move_extent.c')
-rw-r--r-- | fs/ext4/move_extent.c | 20 |
1 files changed, 7 insertions, 13 deletions
diff --git a/fs/ext4/move_extent.c b/fs/ext4/move_extent.c index 5e2465a8e4ce..a34c0760276c 100644 --- a/fs/ext4/move_extent.c +++ b/fs/ext4/move_extent.c | |||
@@ -113,10 +113,8 @@ mext_check_coverage(struct inode *inode, ext4_lblk_t from, ext4_lblk_t count, | |||
113 | } | 113 | } |
114 | ret = 1; | 114 | ret = 1; |
115 | out: | 115 | out: |
116 | if (path) { | 116 | ext4_ext_drop_refs(path); |
117 | ext4_ext_drop_refs(path); | 117 | kfree(path); |
118 | kfree(path); | ||
119 | } | ||
120 | return ret; | 118 | return ret; |
121 | } | 119 | } |
122 | 120 | ||
@@ -711,11 +709,9 @@ ext4_move_extents(struct file *o_filp, struct file *d_filp, __u64 orig_blk, | |||
711 | o_start += cur_len; | 709 | o_start += cur_len; |
712 | d_start += cur_len; | 710 | d_start += cur_len; |
713 | repeat: | 711 | repeat: |
714 | if (path) { | 712 | ext4_ext_drop_refs(path); |
715 | ext4_ext_drop_refs(path); | 713 | kfree(path); |
716 | kfree(path); | 714 | path = NULL; |
717 | path = NULL; | ||
718 | } | ||
719 | } | 715 | } |
720 | *moved_len = o_start - orig_blk; | 716 | *moved_len = o_start - orig_blk; |
721 | if (*moved_len > len) | 717 | if (*moved_len > len) |
@@ -727,10 +723,8 @@ out: | |||
727 | ext4_discard_preallocations(donor_inode); | 723 | ext4_discard_preallocations(donor_inode); |
728 | } | 724 | } |
729 | 725 | ||
730 | if (path) { | 726 | ext4_ext_drop_refs(path); |
731 | ext4_ext_drop_refs(path); | 727 | kfree(path); |
732 | kfree(path); | ||
733 | } | ||
734 | ext4_double_up_write_data_sem(orig_inode, donor_inode); | 728 | ext4_double_up_write_data_sem(orig_inode, donor_inode); |
735 | ext4_inode_resume_unlocked_dio(orig_inode); | 729 | ext4_inode_resume_unlocked_dio(orig_inode); |
736 | ext4_inode_resume_unlocked_dio(donor_inode); | 730 | ext4_inode_resume_unlocked_dio(donor_inode); |