From: Chao Yu <yuchao0@huawei.com>
To: Gao Xiang <hsiangkao@redhat.com>, 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: Sat, 27 Mar 2021 17:32:34 +0800 [thread overview]
Message-ID: <74d56e23-0cb9-b307-2920-5299de7bf527@huawei.com> (raw)
In-Reply-To: <20210325082948.GA2474089@xiangao.remote.csb>
On 2021/3/25 16:29, Gao Xiang wrote:
> 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.
Looks fine to me.
Reviewed-by: Chao Yu <yuchao0@huawei.com>
Thanks,
>
> 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
>>
>
> .
>
prev parent reply other threads:[~2021-03-27 9:33 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
2021-03-27 9:32 ` Chao Yu [this message]
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=74d56e23-0cb9-b307-2920-5299de7bf527@huawei.com \
--to=yuchao0@huawei.com \
--cc=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).