Hi Kairui, kernel test robot noticed the following build errors: [auto build test ERROR on akpm-mm/mm-everything] url: https://github.com/intel-lab-lkp/linux/commits/Kairui-Song/mm-swap-minor-clean-up-for-swap-entry-allocation/20241224-224136 base: https://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm.git mm-everything patch link: https://lore.kernel.org/r/20241224143811.33462-6-ryncsn%40gmail.com patch subject: [PATCH v2 05/13] mm, swap: clean up device availability check config: i386-buildonly-randconfig-001-20241224 (https://download.01.org/0day-ci/archive/20241225/202412250259.S5ew5ZrN-lkp@xxxxxxxxx/config) compiler: clang version 19.1.3 (https://github.com/llvm/llvm-project ab51eccf88f5321e7c60591c5546b254b6afab99) reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20241225/202412250259.S5ew5ZrN-lkp@xxxxxxxxx/reproduce) If you fix the issue in a separate patch/commit (i.e. not just a new version of the same patch/commit), kindly add following tags | Reported-by: kernel test robot <lkp@xxxxxxxxx> | Closes: https://lore.kernel.org/oe-kbuild-all/202412250259.S5ew5ZrN-lkp@xxxxxxxxx/ All errors (new ones prefixed by >>): >> fs/f2fs/data.c:4046:7: error: no member named 'highest_bit' in 'struct swap_info_struct' 4046 | sis->highest_bit = cur_lblock - 1; | ~~~ ^ 1 error generated. vim +4046 fs/f2fs/data.c 859fca6b706e00 Chao Yu 2021-05-26 3940 0b8fc00601c0d8 Chao Yu 2021-05-26 3941 static int check_swap_activate(struct swap_info_struct *sis, af4b6b8edf6aad Chao Yu 2020-10-12 3942 struct file *swap_file, sector_t *span) af4b6b8edf6aad Chao Yu 2020-10-12 3943 { af4b6b8edf6aad Chao Yu 2020-10-12 3944 struct address_space *mapping = swap_file->f_mapping; af4b6b8edf6aad Chao Yu 2020-10-12 3945 struct inode *inode = mapping->host; 36e4d95891ed37 huangjianan@xxxxxxxx 2021-03-01 3946 struct f2fs_sb_info *sbi = F2FS_I_SB(inode); aa4074e8fec4d2 Wu Bo 2024-04-28 3947 block_t cur_lblock; aa4074e8fec4d2 Wu Bo 2024-04-28 3948 block_t last_lblock; aa4074e8fec4d2 Wu Bo 2024-04-28 3949 block_t pblock; aa4074e8fec4d2 Wu Bo 2024-04-28 3950 block_t lowest_pblock = -1; aa4074e8fec4d2 Wu Bo 2024-04-28 3951 block_t highest_pblock = 0; af4b6b8edf6aad Chao Yu 2020-10-12 3952 int nr_extents = 0; aa4074e8fec4d2 Wu Bo 2024-04-28 3953 unsigned int nr_pblocks; 859fca6b706e00 Chao Yu 2021-05-26 3954 unsigned int blks_per_sec = BLKS_PER_SEC(sbi); ca298241bc2293 Jaegeuk Kim 2021-05-11 3955 unsigned int not_aligned = 0; 36e4d95891ed37 huangjianan@xxxxxxxx 2021-03-01 3956 int ret = 0; af4b6b8edf6aad Chao Yu 2020-10-12 3957 af4b6b8edf6aad Chao Yu 2020-10-12 3958 /* af4b6b8edf6aad Chao Yu 2020-10-12 3959 * Map all the blocks into the extent list. This code doesn't try af4b6b8edf6aad Chao Yu 2020-10-12 3960 * to be very smart. af4b6b8edf6aad Chao Yu 2020-10-12 3961 */ af4b6b8edf6aad Chao Yu 2020-10-12 3962 cur_lblock = 0; 7461f370941802 Chao Yu 2024-11-08 3963 last_lblock = F2FS_BYTES_TO_BLK(i_size_read(inode)); af4b6b8edf6aad Chao Yu 2020-10-12 3964 1da66103837077 huangjianan@xxxxxxxx 2021-02-27 3965 while (cur_lblock < last_lblock && cur_lblock < sis->max) { b876f4c94c3d16 Jaegeuk Kim 2020-11-24 3966 struct f2fs_map_blocks map; 859fca6b706e00 Chao Yu 2021-05-26 3967 retry: af4b6b8edf6aad Chao Yu 2020-10-12 3968 cond_resched(); af4b6b8edf6aad Chao Yu 2020-10-12 3969 b876f4c94c3d16 Jaegeuk Kim 2020-11-24 3970 memset(&map, 0, sizeof(map)); b876f4c94c3d16 Jaegeuk Kim 2020-11-24 3971 map.m_lblk = cur_lblock; 36e4d95891ed37 huangjianan@xxxxxxxx 2021-03-01 3972 map.m_len = last_lblock - cur_lblock; 36e4d95891ed37 huangjianan@xxxxxxxx 2021-03-01 3973 map.m_next_pgofs = NULL; 36e4d95891ed37 huangjianan@xxxxxxxx 2021-03-01 3974 map.m_next_extent = NULL; b876f4c94c3d16 Jaegeuk Kim 2020-11-24 3975 map.m_seg_type = NO_CHECK_TYPE; 36e4d95891ed37 huangjianan@xxxxxxxx 2021-03-01 3976 map.m_may_create = false; af4b6b8edf6aad Chao Yu 2020-10-12 3977 cd8fc5226bef3a Christoph Hellwig 2022-11-28 3978 ret = f2fs_map_blocks(inode, &map, F2FS_GET_BLOCK_FIEMAP); af4b6b8edf6aad Chao Yu 2020-10-12 3979 if (ret) 36e4d95891ed37 huangjianan@xxxxxxxx 2021-03-01 3980 goto out; af4b6b8edf6aad Chao Yu 2020-10-12 3981 af4b6b8edf6aad Chao Yu 2020-10-12 3982 /* hole */ 36e4d95891ed37 huangjianan@xxxxxxxx 2021-03-01 3983 if (!(map.m_flags & F2FS_MAP_FLAGS)) { 833dcd35453713 Joe Perches 2021-05-26 3984 f2fs_err(sbi, "Swapfile has holes"); f395183f9544ba Jaegeuk Kim 2021-05-12 3985 ret = -EINVAL; 36e4d95891ed37 huangjianan@xxxxxxxx 2021-03-01 3986 goto out; 36e4d95891ed37 huangjianan@xxxxxxxx 2021-03-01 3987 } af4b6b8edf6aad Chao Yu 2020-10-12 3988 b876f4c94c3d16 Jaegeuk Kim 2020-11-24 3989 pblock = map.m_pblk; b876f4c94c3d16 Jaegeuk Kim 2020-11-24 3990 nr_pblocks = map.m_len; af4b6b8edf6aad Chao Yu 2020-10-12 3991 aa4074e8fec4d2 Wu Bo 2024-04-28 3992 if ((pblock - SM_I(sbi)->main_blkaddr) % blks_per_sec || aa4074e8fec4d2 Wu Bo 2024-04-28 3993 nr_pblocks % blks_per_sec || 9703d69d9d153b Daeho Jeong 2024-02-13 3994 !f2fs_valid_pinned_area(sbi, pblock)) { 9703d69d9d153b Daeho Jeong 2024-02-13 3995 bool last_extent = false; 9703d69d9d153b Daeho Jeong 2024-02-13 3996 ca298241bc2293 Jaegeuk Kim 2021-05-11 3997 not_aligned++; 859fca6b706e00 Chao Yu 2021-05-26 3998 859fca6b706e00 Chao Yu 2021-05-26 3999 nr_pblocks = roundup(nr_pblocks, blks_per_sec); 859fca6b706e00 Chao Yu 2021-05-26 4000 if (cur_lblock + nr_pblocks > sis->max) 859fca6b706e00 Chao Yu 2021-05-26 4001 nr_pblocks -= blks_per_sec; 859fca6b706e00 Chao Yu 2021-05-26 4002 859fca6b706e00 Chao Yu 2021-05-26 4003 /* this extent is last one */ 9703d69d9d153b Daeho Jeong 2024-02-13 4004 if (!nr_pblocks) { 9703d69d9d153b Daeho Jeong 2024-02-13 4005 nr_pblocks = last_lblock - cur_lblock; 9703d69d9d153b Daeho Jeong 2024-02-13 4006 last_extent = true; ca298241bc2293 Jaegeuk Kim 2021-05-11 4007 } 36e4d95891ed37 huangjianan@xxxxxxxx 2021-03-01 4008 859fca6b706e00 Chao Yu 2021-05-26 4009 ret = f2fs_migrate_blocks(inode, cur_lblock, 859fca6b706e00 Chao Yu 2021-05-26 4010 nr_pblocks); 9703d69d9d153b Daeho Jeong 2024-02-13 4011 if (ret) { 9703d69d9d153b Daeho Jeong 2024-02-13 4012 if (ret == -ENOENT) 9703d69d9d153b Daeho Jeong 2024-02-13 4013 ret = -EINVAL; 859fca6b706e00 Chao Yu 2021-05-26 4014 goto out; 9703d69d9d153b Daeho Jeong 2024-02-13 4015 } 9703d69d9d153b Daeho Jeong 2024-02-13 4016 9703d69d9d153b Daeho Jeong 2024-02-13 4017 if (!last_extent) 859fca6b706e00 Chao Yu 2021-05-26 4018 goto retry; 859fca6b706e00 Chao Yu 2021-05-26 4019 } 9703d69d9d153b Daeho Jeong 2024-02-13 4020 af4b6b8edf6aad Chao Yu 2020-10-12 4021 if (cur_lblock + nr_pblocks >= sis->max) af4b6b8edf6aad Chao Yu 2020-10-12 4022 nr_pblocks = sis->max - cur_lblock; af4b6b8edf6aad Chao Yu 2020-10-12 4023 af4b6b8edf6aad Chao Yu 2020-10-12 4024 if (cur_lblock) { /* exclude the header page */ af4b6b8edf6aad Chao Yu 2020-10-12 4025 if (pblock < lowest_pblock) af4b6b8edf6aad Chao Yu 2020-10-12 4026 lowest_pblock = pblock; af4b6b8edf6aad Chao Yu 2020-10-12 4027 if (pblock + nr_pblocks - 1 > highest_pblock) af4b6b8edf6aad Chao Yu 2020-10-12 4028 highest_pblock = pblock + nr_pblocks - 1; af4b6b8edf6aad Chao Yu 2020-10-12 4029 } af4b6b8edf6aad Chao Yu 2020-10-12 4030 af4b6b8edf6aad Chao Yu 2020-10-12 4031 /* af4b6b8edf6aad Chao Yu 2020-10-12 4032 * We found a PAGE_SIZE-length, PAGE_SIZE-aligned run of blocks af4b6b8edf6aad Chao Yu 2020-10-12 4033 */ af4b6b8edf6aad Chao Yu 2020-10-12 4034 ret = add_swap_extent(sis, cur_lblock, nr_pblocks, pblock); af4b6b8edf6aad Chao Yu 2020-10-12 4035 if (ret < 0) af4b6b8edf6aad Chao Yu 2020-10-12 4036 goto out; af4b6b8edf6aad Chao Yu 2020-10-12 4037 nr_extents += ret; af4b6b8edf6aad Chao Yu 2020-10-12 4038 cur_lblock += nr_pblocks; af4b6b8edf6aad Chao Yu 2020-10-12 4039 } af4b6b8edf6aad Chao Yu 2020-10-12 4040 ret = nr_extents; af4b6b8edf6aad Chao Yu 2020-10-12 4041 *span = 1 + highest_pblock - lowest_pblock; af4b6b8edf6aad Chao Yu 2020-10-12 4042 if (cur_lblock == 0) af4b6b8edf6aad Chao Yu 2020-10-12 4043 cur_lblock = 1; /* force Empty message */ af4b6b8edf6aad Chao Yu 2020-10-12 4044 sis->max = cur_lblock; af4b6b8edf6aad Chao Yu 2020-10-12 4045 sis->pages = cur_lblock - 1; af4b6b8edf6aad Chao Yu 2020-10-12 @4046 sis->highest_bit = cur_lblock - 1; af4b6b8edf6aad Chao Yu 2020-10-12 4047 out: 859fca6b706e00 Chao Yu 2021-05-26 4048 if (not_aligned) d7e9a9037de27b Daniel Rosenberg 2023-10-02 4049 f2fs_warn(sbi, "Swapfile (%u) is not align to section: 1) creat(), 2) ioctl(F2FS_IOC_SET_PIN_FILE), 3) fallocate(%lu * N)", 859fca6b706e00 Chao Yu 2021-05-26 4050 not_aligned, blks_per_sec * F2FS_BLKSIZE); af4b6b8edf6aad Chao Yu 2020-10-12 4051 return ret; af4b6b8edf6aad Chao Yu 2020-10-12 4052 } af4b6b8edf6aad Chao Yu 2020-10-12 4053 -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki