Re: [f2fs-dev] [PATCH 14/23] f2fs: Convert f2fs_write_cache_pages() to use filemap_get_folios_tag()
Hi "Vishal, Thank you for the patch! Yet something to improve: [auto build test ERROR on jaegeuk-f2fs/dev-test] [also build test ERROR on kdave/for-next linus/master v6.0-rc3] [cannot apply to ceph-client/for-linus next-20220901] [If your patch is applied to the wrong git tree, kindly drop us a note. And when submitting patch, we suggest to use '--base' as documented in https://git-scm.com/docs/git-format-patch#_base_tree_information] url: https://github.com/intel-lab-lkp/linux/commits/Vishal-Moola-Oracle/Convert-to-filemap_get_folios_tag/20220902-060430 base: https://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs.git dev-test config: arc-randconfig-r043-20220901 (https://download.01.org/0day-ci/archive/20220903/202209030512.9yay8edt-...@intel.com/config) compiler: arc-elf-gcc (GCC) 12.1.0 reproduce (this is a W=1 build): wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # https://github.com/intel-lab-lkp/linux/commit/6c74320953cd3749db95f9f09c1fc7d044933635 git remote add linux-review https://github.com/intel-lab-lkp/linux git fetch --no-tags linux-review Vishal-Moola-Oracle/Convert-to-filemap_get_folios_tag/20220902-060430 git checkout 6c74320953cd3749db95f9f09c1fc7d044933635 # save the config file mkdir build_dir && cp config build_dir/.config COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-12.1.0 make.cross W=1 O=build_dir ARCH=arc SHELL=/bin/bash fs/ If you fix the issue, kindly add following tag where applicable Reported-by: kernel test robot All errors (new ones prefixed by >>): fs/f2fs/data.c: In function 'f2fs_write_cache_pages': >> fs/f2fs/data.c:3016:53: error: 'nr_pages' undeclared (first use in this >> function); did you mean 'dir_pages'? 3016 | , i, nr_pages, true)) | ^~~~ | dir_pages fs/f2fs/data.c:3016:53: note: each undeclared identifier is reported only once for each function it appears in >> fs/f2fs/data.c:3017:41: error: label 'lock_page' used but not defined 3017 | goto lock_page; | ^~~~ vim +3016 fs/f2fs/data.c 2908 2909 /* 2910 * This function was copied from write_cche_pages from mm/page-writeback.c. 2911 * The major change is making write step of cold data page separately from 2912 * warm/hot data page. 2913 */ 2914 static int f2fs_write_cache_pages(struct address_space *mapping, 2915 struct writeback_control *wbc, 2916 enum iostat_type io_type) 2917 { 2918 int ret = 0; 2919 int done = 0, retry = 0; 2920 struct folio_batch fbatch; 2921 struct f2fs_sb_info *sbi = F2FS_M_SB(mapping); 2922 struct bio *bio = NULL; 2923 sector_t last_block; 2924 #ifdef CONFIG_F2FS_FS_COMPRESSION 2925 struct inode *inode = mapping->host; 2926 struct compress_ctx cc = { 2927 .inode = inode, 2928 .log_cluster_size = F2FS_I(inode)->i_log_cluster_size, 2929 .cluster_size = F2FS_I(inode)->i_cluster_size, 2930 .cluster_idx = NULL_CLUSTER, 2931 .rpages = NULL, 2932 .nr_rpages = 0, 2933 .cpages = NULL, 2934 .valid_nr_cpages = 0, 2935 .rbuf = NULL, 2936 .cbuf = NULL, 2937 .rlen = PAGE_SIZE * F2FS_I(inode)->i_cluster_size, 2938 .private = NULL, 2939 }; 2940 #endif 2941 int nr_folios; 2942 pgoff_t index; 2943 pgoff_t end;/* Inclusive */ 2944 pgoff_t done_index; 2945 int range_whole = 0; 2946 xa_mark_t tag; 2947 int nwritten = 0; 2948 int submitted = 0; 2949 int i; 2950 2951 folio_batch_init(); 2952 2953 if (get_dirty_pages(mapping->host) <= 2954 SM_I(F2FS_M_SB(mapping))->min_hot_blocks) 2955 set_inode_flag(mapping->host, FI_HOT_DATA); 2956 else 2957 clear_inode_flag(mapping->host, FI_HOT_DATA); 2958 2959 if (wbc->range_cyclic) { 2960 index = mapping->writeback_index; /* prev offset */ 2961 end = -1; 2962 } else { 2963 index = wbc->range_start >> PAGE_SHIFT; 2964 end = wbc->range_end >> PAGE_SHIFT; 2965 if (wbc->range_start == 0 && wbc->range_end == LLONG_MAX) 2966
Re: [f2fs-dev] [PATCH 14/23] f2fs: Convert f2fs_write_cache_pages() to use filemap_get_folios_tag()
Hi "Vishal, Thank you for the patch! Yet something to improve: [auto build test ERROR on jaegeuk-f2fs/dev-test] [also build test ERROR on kdave/for-next linus/master v6.0-rc3] [cannot apply to ceph-client/for-linus next-20220901] [If your patch is applied to the wrong git tree, kindly drop us a note. And when submitting patch, we suggest to use '--base' as documented in https://git-scm.com/docs/git-format-patch#_base_tree_information] url: https://github.com/intel-lab-lkp/linux/commits/Vishal-Moola-Oracle/Convert-to-filemap_get_folios_tag/20220902-060430 base: https://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs.git dev-test config: hexagon-randconfig-r045-20220901 (https://download.01.org/0day-ci/archive/20220903/202209030346.t02z8vfy-...@intel.com/config) compiler: clang version 16.0.0 (https://github.com/llvm/llvm-project c55b41d5199d2394dd6cdb8f52180d8b81d809d4) reproduce (this is a W=1 build): wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # https://github.com/intel-lab-lkp/linux/commit/6c74320953cd3749db95f9f09c1fc7d044933635 git remote add linux-review https://github.com/intel-lab-lkp/linux git fetch --no-tags linux-review Vishal-Moola-Oracle/Convert-to-filemap_get_folios_tag/20220902-060430 git checkout 6c74320953cd3749db95f9f09c1fc7d044933635 # save the config file mkdir build_dir && cp config build_dir/.config COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=hexagon SHELL=/bin/bash fs/f2fs/ If you fix the issue, kindly add following tag where applicable Reported-by: kernel test robot All errors (new ones prefixed by >>): >> fs/f2fs/data.c:3016:18: error: use of undeclared identifier 'nr_pages'; did >> you mean 'dir_pages'? , i, nr_pages, true)) ^~~~ dir_pages include/linux/pagemap.h:1404:29: note: 'dir_pages' declared here static inline unsigned long dir_pages(struct inode *inode) ^ >> fs/f2fs/data.c:3017:11: error: use of undeclared label 'lock_page' goto lock_page; ^ 2 errors generated. vim +3016 fs/f2fs/data.c 2908 2909 /* 2910 * This function was copied from write_cche_pages from mm/page-writeback.c. 2911 * The major change is making write step of cold data page separately from 2912 * warm/hot data page. 2913 */ 2914 static int f2fs_write_cache_pages(struct address_space *mapping, 2915 struct writeback_control *wbc, 2916 enum iostat_type io_type) 2917 { 2918 int ret = 0; 2919 int done = 0, retry = 0; 2920 struct folio_batch fbatch; 2921 struct f2fs_sb_info *sbi = F2FS_M_SB(mapping); 2922 struct bio *bio = NULL; 2923 sector_t last_block; 2924 #ifdef CONFIG_F2FS_FS_COMPRESSION 2925 struct inode *inode = mapping->host; 2926 struct compress_ctx cc = { 2927 .inode = inode, 2928 .log_cluster_size = F2FS_I(inode)->i_log_cluster_size, 2929 .cluster_size = F2FS_I(inode)->i_cluster_size, 2930 .cluster_idx = NULL_CLUSTER, 2931 .rpages = NULL, 2932 .nr_rpages = 0, 2933 .cpages = NULL, 2934 .valid_nr_cpages = 0, 2935 .rbuf = NULL, 2936 .cbuf = NULL, 2937 .rlen = PAGE_SIZE * F2FS_I(inode)->i_cluster_size, 2938 .private = NULL, 2939 }; 2940 #endif 2941 int nr_folios; 2942 pgoff_t index; 2943 pgoff_t end;/* Inclusive */ 2944 pgoff_t done_index; 2945 int range_whole = 0; 2946 xa_mark_t tag; 2947 int nwritten = 0; 2948 int submitted = 0; 2949 int i; 2950 2951 folio_batch_init(); 2952 2953 if (get_dirty_pages(mapping->host) <= 2954 SM_I(F2FS_M_SB(mapping))->min_hot_blocks) 2955 set_inode_flag(mapping->host, FI_HOT_DATA); 2956 else 2957 clear_inode_flag(mapping->host, FI_HOT_DATA); 2958 2959 if (wbc->range_cyclic) { 2960 index = mapping->writeback_index; /* prev offset */ 2961 end = -1; 2962 } else { 2963 index = wbc->range_start >> PAGE_SHIFT; 2964 end = wbc->range_end >> PAGE_SHIFT; 2965 if (wbc->range_start == 0 && wbc->range_end ==