All of lore.kernel.org
 help / color / mirror / Atom feed
From: Gao Xiang via Linux-erofs <linux-erofs@lists.ozlabs.org>
To: "huangjianan@oppo.com" <huangjianan@oppo.com>
Cc: guoweichao <guoweichao@oppo.com>,
	linux-erofs <linux-erofs@lists.ozlabs.org>,
	zhangshiming <zhangshiming@oppo.com>
Subject: Re: 回复: [WIP] [PATCH 04/12] erofs-utils: fuse: adjust larger extent handling
Date: Mon, 19 Oct 2020 11:32:59 +0800	[thread overview]
Message-ID: <20201019033251.GA29138@hsiangkao-HP-ZHAN-66-Pro-G1> (raw)
In-Reply-To: <2020101911134102451012@oppo.com>

Hi Jianan,

On Mon, Oct 19, 2020 at 11:13:42AM +0800, huangjianan@oppo.com wrote:
> Hi, Gao Xiang锟斤拷
> ________________________________
> 
> 锟斤拷锟斤拷锟剿o拷 Gao Xiang<mailto:hsiangkao@aol.com>
> 锟斤拷锟斤拷时锟戒: 2020-10-17 13:16
> 锟秸硷拷锟剿o拷 linux-erofs<mailto:linux-erofs@lists.ozlabs.org>
> 锟斤拷锟酵o拷 Huang Jianan<mailto:huangjianan@oppo.com>; Li Guifu<mailto:bluce.liguifu@huawei.com>; Li Guifu<mailto:bluce.lee@aliyun.com>; Chao Yu<mailto:chao@kernel.org>; Guo Weichao<mailto:guoweichao@oppo.com>; Zhang Shiming<mailto:zhangshiming@oppo.com>; Gao Xiang<mailto:hsiangkao@aol.com>
> 锟斤拷锟解: [WIP] [PATCH 04/12] erofs-utils: fuse: adjust larger extent handling
> so more easy to understand.
> 
> [ let's fold in to the original patch. ]
> Cc: Huang Jianan <huangjianan@oppo.com>
> Signed-off-by: Gao Xiang <hsiangkao@aol.com>
> ---
> fuse/read.c | 13 +++++++++----
> 1 file changed, 9 insertions(+), 4 deletions(-)
> 
> diff --git a/fuse/read.c b/fuse/read.c
> index 0d0e3b0fa468..dd44adaa1c40 100644
> --- a/fuse/read.c
> +++ b/fuse/read.c
> @@ -112,12 +112,17 @@ size_t erofs_read_data_compression(struct erofs_vnode *vnode, char *buffer,
> Z_EROFS_COMPRESSION_LZ4 :
> Z_EROFS_COMPRESSION_SHIFTED;
> - if (end >= map.m_la + map.m_llen) {
> - count = map.m_llen;
> - partial = !(map.m_flags & EROFS_MAP_FULL_MAPPED);
> - } else {
> + /*
> + * trim to the needed size if the returned extent is quite
> + * larger than requested, and set up partial flag as well.
> + */
> + if (end < map.m_la + map.m_llen) {
> count = end - map.m_la;
> partial = true;
> + } else {
> + ASSERT(end == map.m_la + map_m_llen);
> 
> I think you mean map.m_llen intesad of map_m_llen.
> Besides, I don't understand why add ASSERT here.
> I think this condition will be true if offset+size is exactly the end of a compressed block?

Thanks for your question.
The idea is that we requested the extent with

	map.m_la = end - 1;

	ret = z_erofs_map_blocks_iter(vnode, &map);
	if (ret)
		return ret;

so the extent must include "end - 1", so
it's impossible that "end > map.m_la + map.m_llen"
(invalid return).

or the entire extent would be holed extent, anyway,
that is another extent rather than a data extent.

(BTW, the up-to-date commits is at
https://git.kernel.org/pub/scm/linux/kernel/git/xiang/erofs-utils.git/log/?h=wip/experimental_fuse
kindly check out them as well :) )

Thanks,
Gao Xiang


> 
> + count = map.m_llen;
> + partial = !(map.m_flags & EROFS_MAP_FULL_MAPPED);
> }
> if ((off_t)map.m_la < offset) {
> --
> 2.24.0
> 
> Thanks,
> Jianan


  reply	other threads:[~2020-10-19  3:33 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <20201017051621.7810-1-hsiangkao.ref@aol.com>
2020-10-17  5:16 ` [WIP] [PATCH 00/12] erofs-utils: introduce fuse implementation Gao Xiang via Linux-erofs
2020-10-17  5:16   ` [WIP] [PATCH 01/12] " Gao Xiang via Linux-erofs
2020-10-17  5:16   ` [WIP] [PATCH 02/12] erofs-utils: fuse: support read special file Gao Xiang via Linux-erofs
2020-10-17  5:16   ` [WIP] [PATCH 03/12] erofs-utils: fuse: support read compressed file Gao Xiang via Linux-erofs
2020-10-17  5:16   ` [WIP] [PATCH 04/12] erofs-utils: fuse: adjust larger extent handling Gao Xiang via Linux-erofs
2020-10-19  3:13     ` 回复: " huangjianan
2020-10-19  3:32       ` Gao Xiang via Linux-erofs [this message]
2020-10-19  4:49         ` 回复: " Huang Jianan
2020-10-19  3:37     ` 回复: " Huang Jianan
2020-10-19  3:43       ` Gao Xiang via Linux-erofs
2020-10-17  5:16   ` [WIP] [PATCH 05/12] erofs-utils: fuse: use proper expression about inode size Gao Xiang via Linux-erofs
2020-10-17  5:16   ` [WIP] [PATCH 06/12] erofs-utils: fuse: drop ofs_out Gao Xiang via Linux-erofs
2020-10-17  5:16   ` [WIP] [PATCH 07/12] erofs-utils: fuse: refuse a undefined shifted cluster behavior Gao Xiang via Linux-erofs
2020-10-17  5:16   ` [WIP] [PATCH 08/12] erofs-utils: fuse: drop z_erofs_shifted_transform() Gao Xiang via Linux-erofs
2020-10-17  5:16   ` [WIP] [PATCH 09/12] erofs-utils: fuse: rename ofs_head and outputsize Gao Xiang via Linux-erofs
2020-10-17  5:16   ` [WIP] [PATCH 10/12] erofs-utils: fuse: cleanup erofs_read_data_compression() Gao Xiang via Linux-erofs
2020-10-17  5:16   ` [WIP] [PATCH 11/12] erofs-utils: fuse: move up mpage in struct erofs_map_blocks Gao Xiang via Linux-erofs
2020-10-17  5:16   ` [WIP] [PATCH 12/12] erofs-utils: fuse: fix up source headers Gao Xiang via Linux-erofs

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=20201019033251.GA29138@hsiangkao-HP-ZHAN-66-Pro-G1 \
    --to=linux-erofs@lists.ozlabs.org \
    --cc=guoweichao@oppo.com \
    --cc=hsiangkao@aol.com \
    --cc=huangjianan@oppo.com \
    --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: link
Be 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.