发件人: Gao Xiang发送时间: 2020-10-17 13:16收件人: linux-erofs主题: [WIP] [PATCH 04/12] erofs-utils: fuse: adjust larger extent handlingso 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.cindex 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?
+ count = map.m_llen;+ partial = !(map.m_flags & EROFS_MAP_FULL_MAPPED);}if ((off_t)map.m_la < offset) {--2.24.0
Thanks,Jianan
This e-mail and its attachments contain confidential information from OPPO, which is intended only for the person or entity whose address is listed above. Any use of the information contained herein in any way (including, but not limited to, total or partial disclosure, reproduction, or dissemination) by persons other than the intended recipient(s) is prohibited. If you receive this e-mail in error, please notify the sender by phone or email immediately and delete it!