linux-erofs.lists.ozlabs.org archive mirror
 help / color / mirror / Atom feed
From: Gao Xiang <hsiangkao@redhat.com>
To: Yue Hu <zbestahu@gmail.com>
Cc: xiang@kernel.org, linux-erofs@lists.ozlabs.org,
	huyue2@yulong.com, zbestahu@163.com
Subject: Re: [PATCH] erofs: don't use erofs_map_blocks() any more
Date: Thu, 25 Mar 2021 16:29:48 +0800	[thread overview]
Message-ID: <20210325082948.GA2474089@xiangao.remote.csb> (raw)
In-Reply-To: <20210325071008.573-1-zbestahu@gmail.com>

Hi Yue,

On Thu, Mar 25, 2021 at 03:10:08PM +0800, Yue Hu wrote:
> From: Yue Hu <huyue2@yulong.com>
> 
> Currently, erofs_map_blocks() will be called only from
> erofs_{bmap, read_raw_page} which are all for uncompressed files.
> So, the compression branch in erofs_map_blocks() is pointless. Let's
> remove it and use erofs_map_blocks_flatmode() directly. Also update
> related comments.
> 

You are right, since for compressed files, map_blocks_iter would be more
effective than erofs_map_blocks. Originally, such unique interface was
designed for fiemap (just for example), but I'm fine to get rid of it
until related interfaces are finally implemented.

Also, I'd like to hear opinions from Chao as well.

Thanks,
Gao Xiang

> Signed-off-by: Yue Hu <huyue2@yulong.com>
> ---
>  fs/erofs/data.c     | 19 ++-----------------
>  fs/erofs/internal.h |  6 ++----
>  2 files changed, 4 insertions(+), 21 deletions(-)
> 
> diff --git a/fs/erofs/data.c b/fs/erofs/data.c
> index 1249e74..ebac756 100644
> --- a/fs/erofs/data.c
> +++ b/fs/erofs/data.c
> @@ -109,21 +109,6 @@ static int erofs_map_blocks_flatmode(struct inode *inode,
>  	return err;
>  }
>  
> -int erofs_map_blocks(struct inode *inode,
> -		     struct erofs_map_blocks *map, int flags)
> -{
> -	if (erofs_inode_is_data_compressed(EROFS_I(inode)->datalayout)) {
> -		int err = z_erofs_map_blocks_iter(inode, map, flags);
> -
> -		if (map->mpage) {
> -			put_page(map->mpage);
> -			map->mpage = NULL;
> -		}
> -		return err;
> -	}
> -	return erofs_map_blocks_flatmode(inode, map, flags);
> -}
> -
>  static inline struct bio *erofs_read_raw_page(struct bio *bio,
>  					      struct address_space *mapping,
>  					      struct page *page,
> @@ -159,7 +144,7 @@ static inline struct bio *erofs_read_raw_page(struct bio *bio,
>  		erofs_blk_t blknr;
>  		unsigned int blkoff;
>  
> -		err = erofs_map_blocks(inode, &map, EROFS_GET_BLOCKS_RAW);
> +		err = erofs_map_blocks_flatmode(inode, &map, EROFS_GET_BLOCKS_RAW);
>  		if (err)
>  			goto err_out;
>  
> @@ -318,7 +303,7 @@ static sector_t erofs_bmap(struct address_space *mapping, sector_t block)
>  			return 0;
>  	}
>  
> -	if (!erofs_map_blocks(inode, &map, EROFS_GET_BLOCKS_RAW))
> +	if (!erofs_map_blocks_flatmode(inode, &map, EROFS_GET_BLOCKS_RAW))
>  		return erofs_blknr(map.m_pa);
>  
>  	return 0;
> diff --git a/fs/erofs/internal.h b/fs/erofs/internal.h
> index 30e63b7..db8c847 100644
> --- a/fs/erofs/internal.h
> +++ b/fs/erofs/internal.h
> @@ -289,7 +289,7 @@ static inline unsigned int erofs_inode_datalayout(unsigned int value)
>  extern const struct address_space_operations z_erofs_aops;
>  
>  /*
> - * Logical to physical block mapping, used by erofs_map_blocks()
> + * Logical to physical block mapping
>   *
>   * Different with other file systems, it is used for 2 access modes:
>   *
> @@ -336,7 +336,7 @@ struct erofs_map_blocks {
>  	struct page *mpage;
>  };
>  
> -/* Flags used by erofs_map_blocks() */
> +/* Flags used by erofs_map_blocks_flatmode() */
>  #define EROFS_GET_BLOCKS_RAW    0x0001
>  
>  /* zmap.c */
> @@ -358,8 +358,6 @@ static inline int z_erofs_map_blocks_iter(struct inode *inode,
>  /* data.c */
>  struct page *erofs_get_meta_page(struct super_block *sb, erofs_blk_t blkaddr);
>  
> -int erofs_map_blocks(struct inode *, struct erofs_map_blocks *, int);
> -
>  /* inode.c */
>  static inline unsigned long erofs_inode_hash(erofs_nid_t nid)
>  {
> -- 
> 1.9.1
> 


  reply	other threads:[~2021-03-25  8:30 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-03-25  7:10 [PATCH] erofs: don't use erofs_map_blocks() any more Yue Hu
2021-03-25  8:29 ` Gao Xiang [this message]
2021-03-27  9:32   ` Chao Yu

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20210325082948.GA2474089@xiangao.remote.csb \
    --to=hsiangkao@redhat.com \
    --cc=huyue2@yulong.com \
    --cc=linux-erofs@lists.ozlabs.org \
    --cc=xiang@kernel.org \
    --cc=zbestahu@163.com \
    --cc=zbestahu@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).