On Fri 25-01-19 20:30:55, zhangyi (F) wrote: > Now, we have already handle all cases of forgetting buffer in > jbd2_journal_forget(), the buffer should not be mapped to blockdevice > when reallocating it. So this patch remove all clean_bdev_aliases() and > clean_bdev_bh_alias() calls which were invoked by ext4 explicitly. > > Suggested-by: Jan Kara <jack@xxxxxxx> > Signed-off-by: zhangyi (F) <yi.zhang@xxxxxxxxxx> Looks good to me. You can add: Reviewed-by: Jan Kara <jack@xxxxxxx> Honza > --- > fs/ext4/extents.c | 12 +----------- > fs/ext4/inode.c | 7 ------- > fs/ext4/page-io.c | 4 +--- > 3 files changed, 2 insertions(+), 21 deletions(-) > > diff --git a/fs/ext4/extents.c b/fs/ext4/extents.c > index a054f51..ffb72d8 100644 > --- a/fs/ext4/extents.c > +++ b/fs/ext4/extents.c > @@ -4068,18 +4068,8 @@ ext4_ext_handle_unwritten_extents(handle_t *handle, struct inode *inode, > } else > allocated = ret; > map->m_flags |= EXT4_MAP_NEW; > - /* > - * if we allocated more blocks than requested > - * we need to make sure we unmap the extra block > - * allocated. The actual needed block will get > - * unmapped later when we find the buffer_head marked > - * new. > - */ > - if (allocated > map->m_len) { > - clean_bdev_aliases(inode->i_sb->s_bdev, newblock + map->m_len, > - allocated - map->m_len); > + if (allocated > map->m_len) > allocated = map->m_len; > - } > map->m_len = allocated; > > map_out: > diff --git a/fs/ext4/inode.c b/fs/ext4/inode.c > index e7adf87..3068c83 100644 > --- a/fs/ext4/inode.c > +++ b/fs/ext4/inode.c > @@ -678,8 +678,6 @@ int ext4_map_blocks(handle_t *handle, struct inode *inode, > if (flags & EXT4_GET_BLOCKS_ZERO && > map->m_flags & EXT4_MAP_MAPPED && > map->m_flags & EXT4_MAP_NEW) { > - clean_bdev_aliases(inode->i_sb->s_bdev, map->m_pblk, > - map->m_len); > ret = ext4_issue_zeroout(inode, map->m_lblk, > map->m_pblk, map->m_len); > if (ret) { > @@ -1194,7 +1192,6 @@ static int ext4_block_write_begin(struct page *page, loff_t pos, unsigned len, > if (err) > break; > if (buffer_new(bh)) { > - clean_bdev_bh_alias(bh); > if (PageUptodate(page)) { > clear_buffer_new(bh); > set_buffer_uptodate(bh); > @@ -2490,10 +2487,6 @@ static int mpage_map_one_extent(handle_t *handle, struct mpage_da_data *mpd) > } > > BUG_ON(map->m_len == 0); > - if (map->m_flags & EXT4_MAP_NEW) { > - clean_bdev_aliases(inode->i_sb->s_bdev, map->m_pblk, > - map->m_len); > - } > return 0; > } > > diff --git a/fs/ext4/page-io.c b/fs/ext4/page-io.c > index 2aa62d5..1559946 100644 > --- a/fs/ext4/page-io.c > +++ b/fs/ext4/page-io.c > @@ -467,10 +467,8 @@ int ext4_bio_write_page(struct ext4_io_submit *io, > ext4_io_submit(io); > continue; > } > - if (buffer_new(bh)) { > + if (buffer_new(bh)) > clear_buffer_new(bh); > - clean_bdev_bh_alias(bh); > - } > set_buffer_async_write(bh); > nr_to_submit++; > } while ((bh = bh->b_this_page) != head); > -- > 2.7.4 > -- Jan Kara <jack@xxxxxxxx> SUSE Labs, CR