diff options
Diffstat (limited to 'fs/ext4')
-rw-r--r-- | fs/ext4/extents.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/fs/ext4/extents.c b/fs/ext4/extents.c index 700206e525da..3a7928f825e4 100644 --- a/fs/ext4/extents.c +++ b/fs/ext4/extents.c | |||
@@ -1762,7 +1762,9 @@ int ext4_ext_walk_space(struct inode *inode, ext4_lblk_t block, | |||
1762 | while (block < last && block != EXT_MAX_BLOCK) { | 1762 | while (block < last && block != EXT_MAX_BLOCK) { |
1763 | num = last - block; | 1763 | num = last - block; |
1764 | /* find extent for this block */ | 1764 | /* find extent for this block */ |
1765 | down_read(&EXT4_I(inode)->i_data_sem); | ||
1765 | path = ext4_ext_find_extent(inode, block, path); | 1766 | path = ext4_ext_find_extent(inode, block, path); |
1767 | up_read(&EXT4_I(inode)->i_data_sem); | ||
1766 | if (IS_ERR(path)) { | 1768 | if (IS_ERR(path)) { |
1767 | err = PTR_ERR(path); | 1769 | err = PTR_ERR(path); |
1768 | path = NULL; | 1770 | path = NULL; |
@@ -3724,10 +3726,8 @@ int ext4_fiemap(struct inode *inode, struct fiemap_extent_info *fieinfo, | |||
3724 | * Walk the extent tree gathering extent information. | 3726 | * Walk the extent tree gathering extent information. |
3725 | * ext4_ext_fiemap_cb will push extents back to user. | 3727 | * ext4_ext_fiemap_cb will push extents back to user. |
3726 | */ | 3728 | */ |
3727 | down_read(&EXT4_I(inode)->i_data_sem); | ||
3728 | error = ext4_ext_walk_space(inode, start_blk, len_blks, | 3729 | error = ext4_ext_walk_space(inode, start_blk, len_blks, |
3729 | ext4_ext_fiemap_cb, fieinfo); | 3730 | ext4_ext_fiemap_cb, fieinfo); |
3730 | up_read(&EXT4_I(inode)->i_data_sem); | ||
3731 | } | 3731 | } |
3732 | 3732 | ||
3733 | return error; | 3733 | return error; |