[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20170510074147.26743-5-jack@suse.cz>
Date: Wed, 10 May 2017 09:41:47 +0200
From: Jan Kara <jack@...e.cz>
To: Ted Tso <tytso@....edu>
Cc: <linux-ext4@...r.kernel.org>, Jan Kara <jack@...e.cz>
Subject: [PATCH 4/4] ext4: Remove unnecessary io_end allocation from ext4_writepages()
We don't have to allocate io_end when doing writeback from
ext4_writepages() without doing allocation. Remove the unnecessary
allocation. Also do_map argument is now unnecessary since we have io_end
allocated only if we want blocks to be allocated so remove it.
Signed-off-by: Jan Kara <jack@...e.cz>
---
fs/ext4/inode.c | 15 ++-------------
1 file changed, 2 insertions(+), 13 deletions(-)
diff --git a/fs/ext4/inode.c b/fs/ext4/inode.c
index 6bce4520d569..83cddd9d7fb2 100644
--- a/fs/ext4/inode.c
+++ b/fs/ext4/inode.c
@@ -1643,7 +1643,6 @@ struct mpage_da_data {
*/
struct ext4_map_blocks map;
struct ext4_io_submit io_submit; /* IO submission data */
- unsigned int do_map:1;
};
static void mpage_release_unused_pages(struct mpage_da_data *mpd,
@@ -2173,7 +2172,7 @@ static bool mpage_add_bh_to_extent(struct mpage_da_data *mpd, ext4_lblk_t lblk,
/* First block in the extent? */
if (map->m_len == 0) {
/* We cannot map unless handle is started... */
- if (!mpd->do_map)
+ if (!mpd->io_submit.io_end)
return false;
map->m_lblk = lblk;
map->m_len = 1;
@@ -2228,7 +2227,7 @@ static int mpage_process_page_bufs(struct mpage_da_data *mpd,
if (mpd->map.m_len)
return 0;
/* Buffer needs mapping and handle is not started? */
- if (!mpd->do_map)
+ if (!mpd->io_submit.io_end)
return 0;
/* Everything mapped so far and we hit EOF */
break;
@@ -2753,17 +2752,9 @@ static int ext4_writepages(struct address_space *mapping,
* in the block layer on device congestion while having transaction
* started.
*/
- mpd.do_map = 0;
- mpd.io_submit.io_end = ext4_init_io_end(inode, GFP_KERNEL);
- if (!mpd.io_submit.io_end) {
- ret = -ENOMEM;
- goto unplug;
- }
ret = mpage_prepare_extent_to_map(&mpd);
/* Submit prepared bio */
ext4_io_submit(&mpd.io_submit);
- ext4_put_io_end_defer(mpd.io_submit.io_end);
- mpd.io_submit.io_end = NULL;
/* Unlock pages we didn't use */
mpage_release_unused_pages(&mpd, false);
if (ret < 0)
@@ -2800,7 +2791,6 @@ static int ext4_writepages(struct address_space *mapping,
mpd.io_submit.io_end = NULL;
break;
}
- mpd.do_map = 1;
trace_ext4_da_write_pages(inode, mpd.first_page, mpd.wbc);
ret = mpage_prepare_extent_to_map(&mpd);
@@ -2831,7 +2821,6 @@ static int ext4_writepages(struct address_space *mapping,
if (!ext4_handle_valid(handle) || handle->h_sync == 0) {
ext4_journal_stop(handle);
handle = NULL;
- mpd.do_map = 0;
}
/* Submit prepared bio */
ext4_io_submit(&mpd.io_submit);
--
2.12.0
Powered by blists - more mailing lists