diff options
author | Jan Kara <jack@suse.cz> | 2016-11-04 13:08:13 -0400 |
---|---|---|
committer | Jens Axboe <axboe@fb.com> | 2016-11-04 16:34:47 -0400 |
commit | 64e1c57fa4740ac0728afe173e5a025b0e94cd55 (patch) | |
tree | 032bb2137953ad971f36ddd9e848a1f2ab16f54d | |
parent | f734c89cc96e9b6f903865cd2656d9d8a7e160e7 (diff) |
ext4: Use clean_bdev_aliases() instead of iteration
Use clean_bdev_aliases() instead of iterating through blocks one by one.
Signed-off-by: Jan Kara <jack@suse.cz>
Signed-off-by: Jens Axboe <axboe@fb.com>
-rw-r--r-- | fs/ext4/extents.c | 13 | ||||
-rw-r--r-- | fs/ext4/inode.c | 15 |
2 files changed, 6 insertions, 22 deletions
diff --git a/fs/ext4/extents.c b/fs/ext4/extents.c index c930a0110fb4..dd5b74dfa018 100644 --- a/fs/ext4/extents.c +++ b/fs/ext4/extents.c | |||
@@ -3777,14 +3777,6 @@ out: | |||
3777 | return err; | 3777 | return err; |
3778 | } | 3778 | } |
3779 | 3779 | ||
3780 | static void unmap_underlying_metadata_blocks(struct block_device *bdev, | ||
3781 | sector_t block, int count) | ||
3782 | { | ||
3783 | int i; | ||
3784 | for (i = 0; i < count; i++) | ||
3785 | unmap_underlying_metadata(bdev, block + i); | ||
3786 | } | ||
3787 | |||
3788 | /* | 3780 | /* |
3789 | * Handle EOFBLOCKS_FL flag, clearing it if necessary | 3781 | * Handle EOFBLOCKS_FL flag, clearing it if necessary |
3790 | */ | 3782 | */ |
@@ -4121,9 +4113,8 @@ out: | |||
4121 | * new. | 4113 | * new. |
4122 | */ | 4114 | */ |
4123 | if (allocated > map->m_len) { | 4115 | if (allocated > map->m_len) { |
4124 | unmap_underlying_metadata_blocks(inode->i_sb->s_bdev, | 4116 | clean_bdev_aliases(inode->i_sb->s_bdev, newblock + map->m_len, |
4125 | newblock + map->m_len, | 4117 | allocated - map->m_len); |
4126 | allocated - map->m_len); | ||
4127 | allocated = map->m_len; | 4118 | allocated = map->m_len; |
4128 | } | 4119 | } |
4129 | map->m_len = allocated; | 4120 | map->m_len = allocated; |
diff --git a/fs/ext4/inode.c b/fs/ext4/inode.c index 9c064727ed62..7c7cc4ae4b8e 100644 --- a/fs/ext4/inode.c +++ b/fs/ext4/inode.c | |||
@@ -654,12 +654,8 @@ found: | |||
654 | if (flags & EXT4_GET_BLOCKS_ZERO && | 654 | if (flags & EXT4_GET_BLOCKS_ZERO && |
655 | map->m_flags & EXT4_MAP_MAPPED && | 655 | map->m_flags & EXT4_MAP_MAPPED && |
656 | map->m_flags & EXT4_MAP_NEW) { | 656 | map->m_flags & EXT4_MAP_NEW) { |
657 | ext4_lblk_t i; | 657 | clean_bdev_aliases(inode->i_sb->s_bdev, map->m_pblk, |
658 | 658 | map->m_len); | |
659 | for (i = 0; i < map->m_len; i++) { | ||
660 | unmap_underlying_metadata(inode->i_sb->s_bdev, | ||
661 | map->m_pblk + i); | ||
662 | } | ||
663 | ret = ext4_issue_zeroout(inode, map->m_lblk, | 659 | ret = ext4_issue_zeroout(inode, map->m_lblk, |
664 | map->m_pblk, map->m_len); | 660 | map->m_pblk, map->m_len); |
665 | if (ret) { | 661 | if (ret) { |
@@ -2360,11 +2356,8 @@ static int mpage_map_one_extent(handle_t *handle, struct mpage_da_data *mpd) | |||
2360 | 2356 | ||
2361 | BUG_ON(map->m_len == 0); | 2357 | BUG_ON(map->m_len == 0); |
2362 | if (map->m_flags & EXT4_MAP_NEW) { | 2358 | if (map->m_flags & EXT4_MAP_NEW) { |
2363 | struct block_device *bdev = inode->i_sb->s_bdev; | 2359 | clean_bdev_aliases(inode->i_sb->s_bdev, map->m_pblk, |
2364 | int i; | 2360 | map->m_len); |
2365 | |||
2366 | for (i = 0; i < map->m_len; i++) | ||
2367 | unmap_underlying_metadata(bdev, map->m_pblk + i); | ||
2368 | } | 2361 | } |
2369 | return 0; | 2362 | return 0; |
2370 | } | 2363 | } |