CC: kbuild-...@lists.01.org
BCC: l...@intel.com
CC: Xiang Gao <xi...@kernel.org>
CC: linux-ker...@vger.kernel.org
TO: Gao Xiang <hsiang...@linux.alibaba.com>

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/xiang/linux.git 
erofs/misc
head:   dd38670e1d1e1bbf14545d8f149267c0506c5119
commit: 00bdb207d41a8f783140eaa747ba86dfb3ca83f8 [2/3] erofs: get rid of 
`struct z_erofs_collector'
:::::: branch date: 8 days ago
:::::: commit date: 8 days ago
config: i386-randconfig-m021-20220307 
(https://download.01.org/0day-ci/archive/20220309/202203092202.qayocavb-...@intel.com/config)
compiler: gcc-9 (Debian 9.3.0-22) 9.3.0

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <l...@intel.com>
Reported-by: Dan Carpenter <dan.carpen...@oracle.com>

New smatch warnings:
fs/erofs/zdata.c:767 z_erofs_do_read_page() error: we previously assumed 
'fe->cl' could be null (see line 666)

Old smatch warnings:
fs/erofs/zdata.c:471 z_erofs_register_collection() warn: passing a valid 
pointer to 'PTR_ERR'
fs/erofs/zdata.c:1244 jobqueueset_init() warn: maybe use && instead of &

vim +767 fs/erofs/zdata.c

92e6efd566c4a15 drivers/staging/erofs/unzip_vle.c Gao Xiang         2018-12-08  
639  
97e86a858bc360c drivers/staging/erofs/zdata.c     Gao Xiang         2019-07-31  
640  static int z_erofs_do_read_page(struct z_erofs_decompress_frontend *fe,
eaa9172ad988b3e fs/erofs/zdata.c                  Gao Xiang         2021-10-22  
641                             struct page *page, struct page **pagepool)
3883a79abd02272 drivers/staging/erofs/unzip_vle.c Gao Xiang         2018-07-26  
642  {
97e86a858bc360c drivers/staging/erofs/zdata.c     Gao Xiang         2019-07-31  
643     struct inode *const inode = fe->inode;
bda17a4577da729 fs/erofs/zdata.c                  Gao Xiang         2019-10-08  
644     struct erofs_sb_info *const sbi = EROFS_I_SB(inode);
3b423417d0d1d5a drivers/staging/erofs/unzip_vle.c Chao Yu           2019-01-15  
645     struct erofs_map_blocks *const map = &fe->map;
3883a79abd02272 drivers/staging/erofs/unzip_vle.c Gao Xiang         2018-07-26  
646     const loff_t offset = page_offset(page);
dc76ea8c1087b5c fs/erofs/zdata.c                  Gao Xiang         2019-09-22  
647     bool tight = true;
3883a79abd02272 drivers/staging/erofs/unzip_vle.c Gao Xiang         2018-07-26  
648  
92e6efd566c4a15 drivers/staging/erofs/unzip_vle.c Gao Xiang         2018-12-08  
649     enum z_erofs_cache_alloctype cache_strategy;
3883a79abd02272 drivers/staging/erofs/unzip_vle.c Gao Xiang         2018-07-26  
650     enum z_erofs_page_type page_type;
7dd68b147d60e5e drivers/staging/erofs/unzip_vle.c Thomas Weißschuh  2018-09-10  
651     unsigned int cur, end, spiltted, index;
1e05ff36e6921ca drivers/staging/erofs/unzip_vle.c Gao Xiang         2018-09-18  
652     int err = 0;
3883a79abd02272 drivers/staging/erofs/unzip_vle.c Gao Xiang         2018-07-26  
653  
3883a79abd02272 drivers/staging/erofs/unzip_vle.c Gao Xiang         2018-07-26  
654     /* register locked file pages as online pages in pack */
3883a79abd02272 drivers/staging/erofs/unzip_vle.c Gao Xiang         2018-07-26  
655     z_erofs_onlinepage_init(page);
3883a79abd02272 drivers/staging/erofs/unzip_vle.c Gao Xiang         2018-07-26  
656  
3883a79abd02272 drivers/staging/erofs/unzip_vle.c Gao Xiang         2018-07-26  
657     spiltted = 0;
3883a79abd02272 drivers/staging/erofs/unzip_vle.c Gao Xiang         2018-07-26  
658     end = PAGE_SIZE;
3883a79abd02272 drivers/staging/erofs/unzip_vle.c Gao Xiang         2018-07-26  
659  repeat:
3883a79abd02272 drivers/staging/erofs/unzip_vle.c Gao Xiang         2018-07-26  
660     cur = end - 1;
3883a79abd02272 drivers/staging/erofs/unzip_vle.c Gao Xiang         2018-07-26  
661  
3883a79abd02272 drivers/staging/erofs/unzip_vle.c Gao Xiang         2018-07-26  
662     /* lucky, within the range of the current map_blocks */
3883a79abd02272 drivers/staging/erofs/unzip_vle.c Gao Xiang         2018-07-26  
663     if (offset + cur >= map->m_la &&
1e5ceeab6929585 drivers/staging/erofs/unzip_vle.c Gao Xiang         2019-02-27  
664         offset + cur < map->m_la + map->m_llen) {
97e86a858bc360c drivers/staging/erofs/zdata.c     Gao Xiang         2019-07-31  
665             /* didn't get a valid collection previously (very rare) */
00bdb207d41a8f7 fs/erofs/zdata.c                  Gao Xiang         2022-03-02 
@666             if (!fe->cl)
1e5ceeab6929585 drivers/staging/erofs/unzip_vle.c Gao Xiang         2019-02-27  
667                     goto restart_now;
3883a79abd02272 drivers/staging/erofs/unzip_vle.c Gao Xiang         2018-07-26  
668             goto hitted;
1e5ceeab6929585 drivers/staging/erofs/unzip_vle.c Gao Xiang         2019-02-27  
669     }
3883a79abd02272 drivers/staging/erofs/unzip_vle.c Gao Xiang         2018-07-26  
670  
3883a79abd02272 drivers/staging/erofs/unzip_vle.c Gao Xiang         2018-07-26  
671     /* go ahead the next map_blocks */
4f761fa253b49f6 fs/erofs/zdata.c                  Gao Xiang         2019-09-04  
672     erofs_dbg("%s: [out-of-range] pos %llu", __func__, offset + cur);
3883a79abd02272 drivers/staging/erofs/unzip_vle.c Gao Xiang         2018-07-26  
673  
00bdb207d41a8f7 fs/erofs/zdata.c                  Gao Xiang         2022-03-02  
674     if (z_erofs_collector_end(fe))
f0c519fc2679ca0 drivers/staging/erofs/unzip_vle.c Gao Xiang         2018-11-23  
675             fe->backmost = false;
3883a79abd02272 drivers/staging/erofs/unzip_vle.c Gao Xiang         2018-07-26  
676  
3883a79abd02272 drivers/staging/erofs/unzip_vle.c Gao Xiang         2018-07-26  
677     map->m_la = offset + cur;
3883a79abd02272 drivers/staging/erofs/unzip_vle.c Gao Xiang         2018-07-26  
678     map->m_llen = 0;
97e86a858bc360c drivers/staging/erofs/zdata.c     Gao Xiang         2019-07-31  
679     err = z_erofs_map_blocks_iter(inode, map, 0);
8d8a09b093d7073 fs/erofs/zdata.c                  Gao Xiang         2019-08-30  
680     if (err)
3883a79abd02272 drivers/staging/erofs/unzip_vle.c Gao Xiang         2018-07-26  
681             goto err_out;
3883a79abd02272 drivers/staging/erofs/unzip_vle.c Gao Xiang         2018-07-26  
682  
1e5ceeab6929585 drivers/staging/erofs/unzip_vle.c Gao Xiang         2019-02-27  
683  restart_now:
8d8a09b093d7073 fs/erofs/zdata.c                  Gao Xiang         2019-08-30  
684     if (!(map->m_flags & EROFS_MAP_MAPPED))
3883a79abd02272 drivers/staging/erofs/unzip_vle.c Gao Xiang         2018-07-26  
685             goto hitted;
3883a79abd02272 drivers/staging/erofs/unzip_vle.c Gao Xiang         2018-07-26  
686  
00bdb207d41a8f7 fs/erofs/zdata.c                  Gao Xiang         2022-03-02  
687     err = z_erofs_collector_begin(fe, inode, map);
8d8a09b093d7073 fs/erofs/zdata.c                  Gao Xiang         2019-08-30  
688     if (err)
3883a79abd02272 drivers/staging/erofs/unzip_vle.c Gao Xiang         2018-07-26  
689             goto err_out;
3883a79abd02272 drivers/staging/erofs/unzip_vle.c Gao Xiang         2018-07-26  
690  
00bdb207d41a8f7 fs/erofs/zdata.c                  Gao Xiang         2022-03-02  
691     if (z_erofs_is_inline_pcluster(fe->pcl)) {
09c543798c3cde1 fs/erofs/zdata.c                  Gao Xiang         2022-01-02  
692             void *mp;
cecf864d3d76d50 fs/erofs/zdata.c                  Yue Hu            2021-12-29  
693  
09c543798c3cde1 fs/erofs/zdata.c                  Gao Xiang         2022-01-02  
694             mp = erofs_read_metabuf(&fe->map.buf, inode->i_sb,
09c543798c3cde1 fs/erofs/zdata.c                  Gao Xiang         2022-01-02  
695                                     erofs_blknr(map->m_pa), EROFS_NO_KMAP);
09c543798c3cde1 fs/erofs/zdata.c                  Gao Xiang         2022-01-02  
696             if (IS_ERR(mp)) {
09c543798c3cde1 fs/erofs/zdata.c                  Gao Xiang         2022-01-02  
697                     err = PTR_ERR(mp);
cecf864d3d76d50 fs/erofs/zdata.c                  Yue Hu            2021-12-29  
698                     erofs_err(inode->i_sb,
cecf864d3d76d50 fs/erofs/zdata.c                  Yue Hu            2021-12-29  
699                               "failed to get inline page, err %d", err);
cecf864d3d76d50 fs/erofs/zdata.c                  Yue Hu            2021-12-29  
700                     goto err_out;
cecf864d3d76d50 fs/erofs/zdata.c                  Yue Hu            2021-12-29  
701             }
09c543798c3cde1 fs/erofs/zdata.c                  Gao Xiang         2022-01-02  
702             get_page(fe->map.buf.page);
00bdb207d41a8f7 fs/erofs/zdata.c                  Gao Xiang         2022-03-02  
703             WRITE_ONCE(fe->pcl->compressed_pages[0], fe->map.buf.page);
00bdb207d41a8f7 fs/erofs/zdata.c                  Gao Xiang         2022-03-02  
704             fe->mode = COLLECT_PRIMARY_FOLLOWED_NOINPLACE;
cecf864d3d76d50 fs/erofs/zdata.c                  Yue Hu            2021-12-29  
705     } else {
cecf864d3d76d50 fs/erofs/zdata.c                  Yue Hu            2021-12-29  
706             /* preload all compressed pages (can change mode if needed) */
cecf864d3d76d50 fs/erofs/zdata.c                  Yue Hu            2021-12-29  
707             if (should_alloc_managed_pages(fe, sbi->opt.cache_strategy,
cecf864d3d76d50 fs/erofs/zdata.c                  Yue Hu            2021-12-29  
708                                            map->m_la))
1825c8d7ce93c47 fs/erofs/zdata.c                  Gao Xiang         2020-12-09  
709                     cache_strategy = TRYALLOC;
92e6efd566c4a15 drivers/staging/erofs/unzip_vle.c Gao Xiang         2018-12-08  
710             else
92e6efd566c4a15 drivers/staging/erofs/unzip_vle.c Gao Xiang         2018-12-08  
711                     cache_strategy = DONTALLOC;
92e6efd566c4a15 drivers/staging/erofs/unzip_vle.c Gao Xiang         2018-12-08  
712  
00bdb207d41a8f7 fs/erofs/zdata.c                  Gao Xiang         2022-03-02  
713             preload_compressed_pages(fe, MNGD_MAPPING(sbi),
1825c8d7ce93c47 fs/erofs/zdata.c                  Gao Xiang         2020-12-09  
714                                      cache_strategy, pagepool);
cecf864d3d76d50 fs/erofs/zdata.c                  Yue Hu            2021-12-29  
715     }
105d4ad857dcbf3 drivers/staging/erofs/unzip_vle.c Gao Xiang         2018-07-26  
716  
3883a79abd02272 drivers/staging/erofs/unzip_vle.c Gao Xiang         2018-07-26  
717  hitted:
dc76ea8c1087b5c fs/erofs/zdata.c                  Gao Xiang         2019-09-22  
718     /*
dc76ea8c1087b5c fs/erofs/zdata.c                  Gao Xiang         2019-09-22  
719      * Ensure the current partial page belongs to this submit chain rather
dc76ea8c1087b5c fs/erofs/zdata.c                  Gao Xiang         2019-09-22  
720      * than other concurrent submit chains or the noio(bypass) chain since
dc76ea8c1087b5c fs/erofs/zdata.c                  Gao Xiang         2019-09-22  
721      * those chains are handled asynchronously thus the page cannot be used
dc76ea8c1087b5c fs/erofs/zdata.c                  Gao Xiang         2019-09-22  
722      * for inplace I/O or pagevec (should be processed in strict order.)
dc76ea8c1087b5c fs/erofs/zdata.c                  Gao Xiang         2019-09-22  
723      */
00bdb207d41a8f7 fs/erofs/zdata.c                  Gao Xiang         2022-03-02  
724     tight &= (fe->mode >= COLLECT_PRIMARY_HOOKED &&
00bdb207d41a8f7 fs/erofs/zdata.c                  Gao Xiang         2022-03-02  
725               fe->mode != COLLECT_PRIMARY_FOLLOWED_NOINPLACE);
dc76ea8c1087b5c fs/erofs/zdata.c                  Gao Xiang         2019-09-22  
726  
7dd68b147d60e5e drivers/staging/erofs/unzip_vle.c Thomas Weißschuh  2018-09-10  
727     cur = end - min_t(unsigned int, offset + end - map->m_la, end);
8d8a09b093d7073 fs/erofs/zdata.c                  Gao Xiang         2019-08-30  
728     if (!(map->m_flags & EROFS_MAP_MAPPED)) {
3883a79abd02272 drivers/staging/erofs/unzip_vle.c Gao Xiang         2018-07-26  
729             zero_user_segment(page, cur, end);
3883a79abd02272 drivers/staging/erofs/unzip_vle.c Gao Xiang         2018-07-26  
730             goto next_part;
3883a79abd02272 drivers/staging/erofs/unzip_vle.c Gao Xiang         2018-07-26  
731     }
3883a79abd02272 drivers/staging/erofs/unzip_vle.c Gao Xiang         2018-07-26  
732  
3883a79abd02272 drivers/staging/erofs/unzip_vle.c Gao Xiang         2018-07-26  
733     /* let's derive page type */
3883a79abd02272 drivers/staging/erofs/unzip_vle.c Gao Xiang         2018-07-26  
734     page_type = cur ? Z_EROFS_VLE_PAGE_TYPE_HEAD :
3883a79abd02272 drivers/staging/erofs/unzip_vle.c Gao Xiang         2018-07-26  
735             (!spiltted ? Z_EROFS_PAGE_TYPE_EXCLUSIVE :
3883a79abd02272 drivers/staging/erofs/unzip_vle.c Gao Xiang         2018-07-26  
736                     (tight ? Z_EROFS_PAGE_TYPE_EXCLUSIVE :
3883a79abd02272 drivers/staging/erofs/unzip_vle.c Gao Xiang         2018-07-26  
737                             Z_EROFS_VLE_PAGE_TYPE_TAIL_SHARED));
3883a79abd02272 drivers/staging/erofs/unzip_vle.c Gao Xiang         2018-07-26  
738  
a112152f6f3a2a8 drivers/staging/erofs/unzip_vle.c Gao Xiang         2019-02-27  
739     if (cur)
00bdb207d41a8f7 fs/erofs/zdata.c                  Gao Xiang         2022-03-02  
740             tight &= (fe->mode >= COLLECT_PRIMARY_FOLLOWED);
a112152f6f3a2a8 drivers/staging/erofs/unzip_vle.c Gao Xiang         2019-02-27  
741  
3883a79abd02272 drivers/staging/erofs/unzip_vle.c Gao Xiang         2018-07-26  
742  retry:
00bdb207d41a8f7 fs/erofs/zdata.c                  Gao Xiang         2022-03-02  
743     err = z_erofs_attach_page(fe, page, page_type,
00bdb207d41a8f7 fs/erofs/zdata.c                  Gao Xiang         2022-03-02  
744                               fe->mode >= COLLECT_PRIMARY_FOLLOWED);
6aaa7b0664e6886 fs/erofs/zdata.c                  Gao Xiang         2020-12-08  
745     /* should allocate an additional short-lived page for pagevec */
3883a79abd02272 drivers/staging/erofs/unzip_vle.c Gao Xiang         2018-07-26  
746     if (err == -EAGAIN) {
3883a79abd02272 drivers/staging/erofs/unzip_vle.c Gao Xiang         2018-07-26  
747             struct page *const newpage =
e3f78d5e7e6b082 fs/erofs/zdata.c                  Chao Yu           2020-09-17  
748                             alloc_page(GFP_NOFS | __GFP_NOFAIL);
3883a79abd02272 drivers/staging/erofs/unzip_vle.c Gao Xiang         2018-07-26  
749  
6aaa7b0664e6886 fs/erofs/zdata.c                  Gao Xiang         2020-12-08  
750             set_page_private(newpage, Z_EROFS_SHORTLIVED_PAGE);
00bdb207d41a8f7 fs/erofs/zdata.c                  Gao Xiang         2022-03-02  
751             err = z_erofs_attach_page(fe, newpage,
86432a6dca9bed7 fs/erofs/zdata.c                  Gao Xiang         2021-11-04  
752                                       Z_EROFS_PAGE_TYPE_EXCLUSIVE, true);
8d8a09b093d7073 fs/erofs/zdata.c                  Gao Xiang         2019-08-30  
753             if (!err)
3883a79abd02272 drivers/staging/erofs/unzip_vle.c Gao Xiang         2018-07-26  
754                     goto retry;
3883a79abd02272 drivers/staging/erofs/unzip_vle.c Gao Xiang         2018-07-26  
755     }
3883a79abd02272 drivers/staging/erofs/unzip_vle.c Gao Xiang         2018-07-26  
756  
8d8a09b093d7073 fs/erofs/zdata.c                  Gao Xiang         2019-08-30  
757     if (err)
3883a79abd02272 drivers/staging/erofs/unzip_vle.c Gao Xiang         2018-07-26  
758             goto err_out;
3883a79abd02272 drivers/staging/erofs/unzip_vle.c Gao Xiang         2018-07-26  
759  
97e86a858bc360c drivers/staging/erofs/zdata.c     Gao Xiang         2019-07-31  
760     index = page->index - (map->m_la >> PAGE_SHIFT);
3883a79abd02272 drivers/staging/erofs/unzip_vle.c Gao Xiang         2018-07-26  
761  
3883a79abd02272 drivers/staging/erofs/unzip_vle.c Gao Xiang         2018-07-26  
762     z_erofs_onlinepage_fixup(page, index, true);
3883a79abd02272 drivers/staging/erofs/unzip_vle.c Gao Xiang         2018-07-26  
763  
1e05ff36e6921ca drivers/staging/erofs/unzip_vle.c Gao Xiang         2018-09-18  
764     /* bump up the number of spiltted parts of a page */
1e05ff36e6921ca drivers/staging/erofs/unzip_vle.c Gao Xiang         2018-09-18  
765     ++spiltted;
1e05ff36e6921ca drivers/staging/erofs/unzip_vle.c Gao Xiang         2018-09-18  
766     /* also update nr_pages */
00bdb207d41a8f7 fs/erofs/zdata.c                  Gao Xiang         2022-03-02 
@767     fe->cl->nr_pages = max_t(pgoff_t, fe->cl->nr_pages, index + 1);
3883a79abd02272 drivers/staging/erofs/unzip_vle.c Gao Xiang         2018-07-26  
768  next_part:
3883a79abd02272 drivers/staging/erofs/unzip_vle.c Gao Xiang         2018-07-26  
769     /* can be used for verification */
3883a79abd02272 drivers/staging/erofs/unzip_vle.c Gao Xiang         2018-07-26  
770     map->m_llen = offset + cur - map->m_la;
3883a79abd02272 drivers/staging/erofs/unzip_vle.c Gao Xiang         2018-07-26  
771  
2bc7596438aba6d drivers/staging/erofs/unzip_vle.c Kristaps Čivkulis 2018-08-05  
772     end = cur;
2bc7596438aba6d drivers/staging/erofs/unzip_vle.c Kristaps Čivkulis 2018-08-05  
773     if (end > 0)
3883a79abd02272 drivers/staging/erofs/unzip_vle.c Gao Xiang         2018-07-26  
774             goto repeat;
3883a79abd02272 drivers/staging/erofs/unzip_vle.c Gao Xiang         2018-07-26  
775  
1e05ff36e6921ca drivers/staging/erofs/unzip_vle.c Gao Xiang         2018-09-18  
776  out:
3883a79abd02272 drivers/staging/erofs/unzip_vle.c Gao Xiang         2018-07-26  
777     z_erofs_onlinepage_endio(page);
3883a79abd02272 drivers/staging/erofs/unzip_vle.c Gao Xiang         2018-07-26  
778  
4f761fa253b49f6 fs/erofs/zdata.c                  Gao Xiang         2019-09-04  
779     erofs_dbg("%s, finish page: %pK spiltted: %u map->m_llen %llu",
3883a79abd02272 drivers/staging/erofs/unzip_vle.c Gao Xiang         2018-07-26  
780               __func__, page, spiltted, map->m_llen);
1e05ff36e6921ca drivers/staging/erofs/unzip_vle.c Gao Xiang         2018-09-18  
781     return err;
3883a79abd02272 drivers/staging/erofs/unzip_vle.c Gao Xiang         2018-07-26  
782  
1e05ff36e6921ca drivers/staging/erofs/unzip_vle.c Gao Xiang         2018-09-18  
783     /* if some error occurred while processing this page */
3883a79abd02272 drivers/staging/erofs/unzip_vle.c Gao Xiang         2018-07-26  
784  err_out:
1e05ff36e6921ca drivers/staging/erofs/unzip_vle.c Gao Xiang         2018-09-18  
785     SetPageError(page);
1e05ff36e6921ca drivers/staging/erofs/unzip_vle.c Gao Xiang         2018-09-18  
786     goto out;
3883a79abd02272 drivers/staging/erofs/unzip_vle.c Gao Xiang         2018-07-26  
787  }
3883a79abd02272 drivers/staging/erofs/unzip_vle.c Gao Xiang         2018-07-26  
788  

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-...@lists.01.org
_______________________________________________
kbuild mailing list -- kbuild@lists.01.org
To unsubscribe send an email to kbuild-le...@lists.01.org

Reply via email to