From: Gao Xiang <hsiangkao@redhat.com> To: Huang Jianan <huangjianan@oppo.com> Cc: linux-erofs@lists.ozlabs.org, linux-kernel@vger.kernel.org, guoweichao@oppo.com, zhangshiming@oppo.com Subject: Re: [PATCH v5] erofs: avoid using generic_block_bmap Date: Thu, 10 Dec 2020 10:36:12 +0800 [thread overview] Message-ID: <20201210023612.GA247374@xiangao.remote.csb> (raw) In-Reply-To: <20201209115740.18802-1-huangjianan@oppo.com> Hi Jianan, On Wed, Dec 09, 2020 at 07:57:40PM +0800, Huang Jianan wrote: > iblock indicates the number of i_blkbits-sized blocks rather than > sectors. > > In addition, considering buffer_head limits mapped size to 32-bits, > should avoid using generic_block_bmap. > > Fixes: 9da681e017a3 ("staging: erofs: support bmap") > Signed-off-by: Huang Jianan <huangjianan@oppo.com> > Signed-off-by: Guo Weichao <guoweichao@oppo.com> Reviewed-by: Gao Xiang <hsiangkao@redhat.com> Also, I think Chao has sent his Reviewed-by in the previous reply --- so unless some major modification happens, it needs to be attached with all new versions as a common practice... I will apply it later to for-next, thanks for your patch! Thanks, Gao Xiang > --- > fs/erofs/data.c | 26 +++++++------------------- > 1 file changed, 7 insertions(+), 19 deletions(-) > > diff --git a/fs/erofs/data.c b/fs/erofs/data.c > index 347be146884c..ea4f693bee22 100644 > --- a/fs/erofs/data.c > +++ b/fs/erofs/data.c > @@ -312,27 +312,12 @@ static void erofs_raw_access_readahead(struct readahead_control *rac) > submit_bio(bio); > } > > -static int erofs_get_block(struct inode *inode, sector_t iblock, > - struct buffer_head *bh, int create) > -{ > - struct erofs_map_blocks map = { > - .m_la = iblock << 9, > - }; > - int err; > - > - err = erofs_map_blocks(inode, &map, EROFS_GET_BLOCKS_RAW); > - if (err) > - return err; > - > - if (map.m_flags & EROFS_MAP_MAPPED) > - bh->b_blocknr = erofs_blknr(map.m_pa); > - > - return err; > -} > - > static sector_t erofs_bmap(struct address_space *mapping, sector_t block) > { > struct inode *inode = mapping->host; > + struct erofs_map_blocks map = { > + .m_la = blknr_to_addr(block), > + }; > > if (EROFS_I(inode)->datalayout == EROFS_INODE_FLAT_INLINE) { > erofs_blk_t blks = i_size_read(inode) >> LOG_BLOCK_SIZE; > @@ -341,7 +326,10 @@ static sector_t erofs_bmap(struct address_space *mapping, sector_t block) > return 0; > } > > - return generic_block_bmap(mapping, block, erofs_get_block); > + if (!erofs_map_blocks(inode, &map, EROFS_GET_BLOCKS_RAW)) > + return erofs_blknr(map.m_pa); > + > + return 0; > } > > /* for uncompressed (aligned) files and raw access for other files */ > -- > 2.25.1 >
WARNING: multiple messages have this Message-ID (diff)
From: Gao Xiang <hsiangkao@redhat.com> To: Huang Jianan <huangjianan@oppo.com> Cc: zhangshiming@oppo.com, guoweichao@oppo.com, linux-erofs@lists.ozlabs.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH v5] erofs: avoid using generic_block_bmap Date: Thu, 10 Dec 2020 10:36:12 +0800 [thread overview] Message-ID: <20201210023612.GA247374@xiangao.remote.csb> (raw) In-Reply-To: <20201209115740.18802-1-huangjianan@oppo.com> Hi Jianan, On Wed, Dec 09, 2020 at 07:57:40PM +0800, Huang Jianan wrote: > iblock indicates the number of i_blkbits-sized blocks rather than > sectors. > > In addition, considering buffer_head limits mapped size to 32-bits, > should avoid using generic_block_bmap. > > Fixes: 9da681e017a3 ("staging: erofs: support bmap") > Signed-off-by: Huang Jianan <huangjianan@oppo.com> > Signed-off-by: Guo Weichao <guoweichao@oppo.com> Reviewed-by: Gao Xiang <hsiangkao@redhat.com> Also, I think Chao has sent his Reviewed-by in the previous reply --- so unless some major modification happens, it needs to be attached with all new versions as a common practice... I will apply it later to for-next, thanks for your patch! Thanks, Gao Xiang > --- > fs/erofs/data.c | 26 +++++++------------------- > 1 file changed, 7 insertions(+), 19 deletions(-) > > diff --git a/fs/erofs/data.c b/fs/erofs/data.c > index 347be146884c..ea4f693bee22 100644 > --- a/fs/erofs/data.c > +++ b/fs/erofs/data.c > @@ -312,27 +312,12 @@ static void erofs_raw_access_readahead(struct readahead_control *rac) > submit_bio(bio); > } > > -static int erofs_get_block(struct inode *inode, sector_t iblock, > - struct buffer_head *bh, int create) > -{ > - struct erofs_map_blocks map = { > - .m_la = iblock << 9, > - }; > - int err; > - > - err = erofs_map_blocks(inode, &map, EROFS_GET_BLOCKS_RAW); > - if (err) > - return err; > - > - if (map.m_flags & EROFS_MAP_MAPPED) > - bh->b_blocknr = erofs_blknr(map.m_pa); > - > - return err; > -} > - > static sector_t erofs_bmap(struct address_space *mapping, sector_t block) > { > struct inode *inode = mapping->host; > + struct erofs_map_blocks map = { > + .m_la = blknr_to_addr(block), > + }; > > if (EROFS_I(inode)->datalayout == EROFS_INODE_FLAT_INLINE) { > erofs_blk_t blks = i_size_read(inode) >> LOG_BLOCK_SIZE; > @@ -341,7 +326,10 @@ static sector_t erofs_bmap(struct address_space *mapping, sector_t block) > return 0; > } > > - return generic_block_bmap(mapping, block, erofs_get_block); > + if (!erofs_map_blocks(inode, &map, EROFS_GET_BLOCKS_RAW)) > + return erofs_blknr(map.m_pa); > + > + return 0; > } > > /* for uncompressed (aligned) files and raw access for other files */ > -- > 2.25.1 >
next prev parent reply other threads:[~2020-12-10 2:37 UTC|newest] Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top 2020-12-09 11:57 [PATCH v5] erofs: avoid using generic_block_bmap Huang Jianan 2020-12-09 11:57 ` Huang Jianan 2020-12-10 2:36 ` Gao Xiang [this message] 2020-12-10 2:36 ` Gao Xiang 2020-12-10 3:08 ` Huang Jianan 2020-12-10 3:08 ` Huang Jianan
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=20201210023612.GA247374@xiangao.remote.csb \ --to=hsiangkao@redhat.com \ --cc=guoweichao@oppo.com \ --cc=huangjianan@oppo.com \ --cc=linux-erofs@lists.ozlabs.org \ --cc=linux-kernel@vger.kernel.org \ --cc=zhangshiming@oppo.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: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.