tree: https://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4.git dev head: 21175ca434c5d49509b73cf473618b01b0b85437 commit: d556435156b7970b8ce61b355df558a5168927cc [9/17] jbd2: avoid -Wempty-body warnings config: m68k-defconfig (attached as .config) compiler: m68k-linux-gcc (GCC) 9.3.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://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4.git/commit/?id=d556435156b7970b8ce61b355df558a5168927cc git remote add ext4 https://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4.git git fetch --no-tags ext4 dev git checkout d556435156b7970b8ce61b355df558a5168927cc # save the attached .config to linux build tree COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=m68k If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot All warnings (new ones prefixed by >>): In file included from include/linux/kernel.h:16, from include/linux/list.h:9, from include/linux/rculist.h:10, from include/linux/pid.h:5, from include/linux/sched.h:14, from include/linux/blkdev.h:5, from fs/ext4/ext4.h:21, from fs/ext4/fast_commit.c:10: fs/ext4/fast_commit.c: In function 'ext4_fc_replay_add_range': >> fs/ext4/fast_commit.c:1737:16: warning: format '%d' expects argument of type 'int', but argument 2 has type 'long unsigned int' [-Wformat=] 1737 | jbd_debug(1, "Converting from %d to %d %lld", | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/printk.h:140:10: note: in definition of macro 'no_printk' 140 | printk(fmt, ##__VA_ARGS__); \ | ^~~ fs/ext4/fast_commit.c:1737:3: note: in expansion of macro 'jbd_debug' 1737 | jbd_debug(1, "Converting from %d to %d %lld", | ^~~~~~~~~ fs/ext4/fast_commit.c:1737:34: note: format string is defined here 1737 | jbd_debug(1, "Converting from %d to %d %lld", | ~^ | | | int | %ld -- In file included from include/linux/kernel.h:16, from include/linux/list.h:9, from include/linux/wait.h:7, from include/linux/wait_bit.h:8, from include/linux/fs.h:6, from fs/jbd2/recovery.c:17: fs/jbd2/recovery.c: In function 'fc_do_one_pass': >> fs/jbd2/recovery.c:256:16: warning: format '%d' expects a matching 'int' argument [-Wformat=] 256 | jbd_debug(3, "Processing fast commit blk with seq %d"); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/printk.h:140:10: note: in definition of macro 'no_printk' 140 | printk(fmt, ##__VA_ARGS__); \ | ^~~ fs/jbd2/recovery.c:256:3: note: in expansion of macro 'jbd_debug' 256 | jbd_debug(3, "Processing fast commit blk with seq %d"); | ^~~~~~~~~ fs/jbd2/recovery.c:256:54: note: format string is defined here 256 | jbd_debug(3, "Processing fast commit blk with seq %d"); | ~^ | | | int vim +1737 fs/ext4/fast_commit.c 8016e29f4362e2 Harshad Shirwadkar 2020-10-15 1631 8016e29f4362e2 Harshad Shirwadkar 2020-10-15 1632 /* Replay add range tag */ 8016e29f4362e2 Harshad Shirwadkar 2020-10-15 1633 static int ext4_fc_replay_add_range(struct super_block *sb, 8016e29f4362e2 Harshad Shirwadkar 2020-10-15 1634 struct ext4_fc_tl *tl) 8016e29f4362e2 Harshad Shirwadkar 2020-10-15 1635 { 8016e29f4362e2 Harshad Shirwadkar 2020-10-15 1636 struct ext4_fc_add_range *fc_add_ex; 8016e29f4362e2 Harshad Shirwadkar 2020-10-15 1637 struct ext4_extent newex, *ex; 8016e29f4362e2 Harshad Shirwadkar 2020-10-15 1638 struct inode *inode; 8016e29f4362e2 Harshad Shirwadkar 2020-10-15 1639 ext4_lblk_t start, cur; 8016e29f4362e2 Harshad Shirwadkar 2020-10-15 1640 int remaining, len; 8016e29f4362e2 Harshad Shirwadkar 2020-10-15 1641 ext4_fsblk_t start_pblk; 8016e29f4362e2 Harshad Shirwadkar 2020-10-15 1642 struct ext4_map_blocks map; 8016e29f4362e2 Harshad Shirwadkar 2020-10-15 1643 struct ext4_ext_path *path = NULL; 8016e29f4362e2 Harshad Shirwadkar 2020-10-15 1644 int ret; 8016e29f4362e2 Harshad Shirwadkar 2020-10-15 1645 8016e29f4362e2 Harshad Shirwadkar 2020-10-15 1646 fc_add_ex = (struct ext4_fc_add_range *)ext4_fc_tag_val(tl); 8016e29f4362e2 Harshad Shirwadkar 2020-10-15 1647 ex = (struct ext4_extent *)&fc_add_ex->fc_ex; 8016e29f4362e2 Harshad Shirwadkar 2020-10-15 1648 8016e29f4362e2 Harshad Shirwadkar 2020-10-15 1649 trace_ext4_fc_replay(sb, EXT4_FC_TAG_ADD_RANGE, 8016e29f4362e2 Harshad Shirwadkar 2020-10-15 1650 le32_to_cpu(fc_add_ex->fc_ino), le32_to_cpu(ex->ee_block), 8016e29f4362e2 Harshad Shirwadkar 2020-10-15 1651 ext4_ext_get_actual_len(ex)); 8016e29f4362e2 Harshad Shirwadkar 2020-10-15 1652 8016e29f4362e2 Harshad Shirwadkar 2020-10-15 1653 inode = ext4_iget(sb, le32_to_cpu(fc_add_ex->fc_ino), 8016e29f4362e2 Harshad Shirwadkar 2020-10-15 1654 EXT4_IGET_NORMAL); 23dd561ad9eae0 Yi Li 2020-12-30 1655 if (IS_ERR(inode)) { 8016e29f4362e2 Harshad Shirwadkar 2020-10-15 1656 jbd_debug(1, "Inode not found."); 8016e29f4362e2 Harshad Shirwadkar 2020-10-15 1657 return 0; 8016e29f4362e2 Harshad Shirwadkar 2020-10-15 1658 } 8016e29f4362e2 Harshad Shirwadkar 2020-10-15 1659 8016e29f4362e2 Harshad Shirwadkar 2020-10-15 1660 ret = ext4_fc_record_modified_inode(sb, inode->i_ino); 8016e29f4362e2 Harshad Shirwadkar 2020-10-15 1661 8016e29f4362e2 Harshad Shirwadkar 2020-10-15 1662 start = le32_to_cpu(ex->ee_block); 8016e29f4362e2 Harshad Shirwadkar 2020-10-15 1663 start_pblk = ext4_ext_pblock(ex); 8016e29f4362e2 Harshad Shirwadkar 2020-10-15 1664 len = ext4_ext_get_actual_len(ex); 8016e29f4362e2 Harshad Shirwadkar 2020-10-15 1665 8016e29f4362e2 Harshad Shirwadkar 2020-10-15 1666 cur = start; 8016e29f4362e2 Harshad Shirwadkar 2020-10-15 1667 remaining = len; 8016e29f4362e2 Harshad Shirwadkar 2020-10-15 1668 jbd_debug(1, "ADD_RANGE, lblk %d, pblk %lld, len %d, unwritten %d, inode %ld\n", 8016e29f4362e2 Harshad Shirwadkar 2020-10-15 1669 start, start_pblk, len, ext4_ext_is_unwritten(ex), 8016e29f4362e2 Harshad Shirwadkar 2020-10-15 1670 inode->i_ino); 8016e29f4362e2 Harshad Shirwadkar 2020-10-15 1671 8016e29f4362e2 Harshad Shirwadkar 2020-10-15 1672 while (remaining > 0) { 8016e29f4362e2 Harshad Shirwadkar 2020-10-15 1673 map.m_lblk = cur; 8016e29f4362e2 Harshad Shirwadkar 2020-10-15 1674 map.m_len = remaining; 8016e29f4362e2 Harshad Shirwadkar 2020-10-15 1675 map.m_pblk = 0; 8016e29f4362e2 Harshad Shirwadkar 2020-10-15 1676 ret = ext4_map_blocks(NULL, inode, &map, 0); 8016e29f4362e2 Harshad Shirwadkar 2020-10-15 1677 8016e29f4362e2 Harshad Shirwadkar 2020-10-15 1678 if (ret < 0) { 8016e29f4362e2 Harshad Shirwadkar 2020-10-15 1679 iput(inode); 8016e29f4362e2 Harshad Shirwadkar 2020-10-15 1680 return 0; 8016e29f4362e2 Harshad Shirwadkar 2020-10-15 1681 } 8016e29f4362e2 Harshad Shirwadkar 2020-10-15 1682 8016e29f4362e2 Harshad Shirwadkar 2020-10-15 1683 if (ret == 0) { 8016e29f4362e2 Harshad Shirwadkar 2020-10-15 1684 /* Range is not mapped */ 8016e29f4362e2 Harshad Shirwadkar 2020-10-15 1685 path = ext4_find_extent(inode, cur, NULL, 0); 8c9be1e58a8dc0 Harshad Shirwadkar 2020-10-27 1686 if (IS_ERR(path)) { 8c9be1e58a8dc0 Harshad Shirwadkar 2020-10-27 1687 iput(inode); 8c9be1e58a8dc0 Harshad Shirwadkar 2020-10-27 1688 return 0; 8c9be1e58a8dc0 Harshad Shirwadkar 2020-10-27 1689 } 8016e29f4362e2 Harshad Shirwadkar 2020-10-15 1690 memset(&newex, 0, sizeof(newex)); 8016e29f4362e2 Harshad Shirwadkar 2020-10-15 1691 newex.ee_block = cpu_to_le32(cur); 8016e29f4362e2 Harshad Shirwadkar 2020-10-15 1692 ext4_ext_store_pblock( 8016e29f4362e2 Harshad Shirwadkar 2020-10-15 1693 &newex, start_pblk + cur - start); 8016e29f4362e2 Harshad Shirwadkar 2020-10-15 1694 newex.ee_len = cpu_to_le16(map.m_len); 8016e29f4362e2 Harshad Shirwadkar 2020-10-15 1695 if (ext4_ext_is_unwritten(ex)) 8016e29f4362e2 Harshad Shirwadkar 2020-10-15 1696 ext4_ext_mark_unwritten(&newex); 8016e29f4362e2 Harshad Shirwadkar 2020-10-15 1697 down_write(&EXT4_I(inode)->i_data_sem); 8016e29f4362e2 Harshad Shirwadkar 2020-10-15 1698 ret = ext4_ext_insert_extent( 8016e29f4362e2 Harshad Shirwadkar 2020-10-15 1699 NULL, inode, &path, &newex, 0); 8016e29f4362e2 Harshad Shirwadkar 2020-10-15 1700 up_write((&EXT4_I(inode)->i_data_sem)); 8016e29f4362e2 Harshad Shirwadkar 2020-10-15 1701 ext4_ext_drop_refs(path); 8016e29f4362e2 Harshad Shirwadkar 2020-10-15 1702 kfree(path); 8016e29f4362e2 Harshad Shirwadkar 2020-10-15 1703 if (ret) { 8016e29f4362e2 Harshad Shirwadkar 2020-10-15 1704 iput(inode); 8016e29f4362e2 Harshad Shirwadkar 2020-10-15 1705 return 0; 8016e29f4362e2 Harshad Shirwadkar 2020-10-15 1706 } 8016e29f4362e2 Harshad Shirwadkar 2020-10-15 1707 goto next; 8016e29f4362e2 Harshad Shirwadkar 2020-10-15 1708 } 8016e29f4362e2 Harshad Shirwadkar 2020-10-15 1709 8016e29f4362e2 Harshad Shirwadkar 2020-10-15 1710 if (start_pblk + cur - start != map.m_pblk) { 8016e29f4362e2 Harshad Shirwadkar 2020-10-15 1711 /* 8016e29f4362e2 Harshad Shirwadkar 2020-10-15 1712 * Logical to physical mapping changed. This can happen 8016e29f4362e2 Harshad Shirwadkar 2020-10-15 1713 * if this range was removed and then reallocated to 8016e29f4362e2 Harshad Shirwadkar 2020-10-15 1714 * map to new physical blocks during a fast commit. 8016e29f4362e2 Harshad Shirwadkar 2020-10-15 1715 */ 8016e29f4362e2 Harshad Shirwadkar 2020-10-15 1716 ret = ext4_ext_replay_update_ex(inode, cur, map.m_len, 8016e29f4362e2 Harshad Shirwadkar 2020-10-15 1717 ext4_ext_is_unwritten(ex), 8016e29f4362e2 Harshad Shirwadkar 2020-10-15 1718 start_pblk + cur - start); 8016e29f4362e2 Harshad Shirwadkar 2020-10-15 1719 if (ret) { 8016e29f4362e2 Harshad Shirwadkar 2020-10-15 1720 iput(inode); 8016e29f4362e2 Harshad Shirwadkar 2020-10-15 1721 return 0; 8016e29f4362e2 Harshad Shirwadkar 2020-10-15 1722 } 8016e29f4362e2 Harshad Shirwadkar 2020-10-15 1723 /* 8016e29f4362e2 Harshad Shirwadkar 2020-10-15 1724 * Mark the old blocks as free since they aren't used 8016e29f4362e2 Harshad Shirwadkar 2020-10-15 1725 * anymore. We maintain an array of all the modified 8016e29f4362e2 Harshad Shirwadkar 2020-10-15 1726 * inodes. In case these blocks are still used at either 8016e29f4362e2 Harshad Shirwadkar 2020-10-15 1727 * a different logical range in the same inode or in 8016e29f4362e2 Harshad Shirwadkar 2020-10-15 1728 * some different inode, we will mark them as allocated 8016e29f4362e2 Harshad Shirwadkar 2020-10-15 1729 * at the end of the FC replay using our array of 8016e29f4362e2 Harshad Shirwadkar 2020-10-15 1730 * modified inodes. 8016e29f4362e2 Harshad Shirwadkar 2020-10-15 1731 */ 8016e29f4362e2 Harshad Shirwadkar 2020-10-15 1732 ext4_mb_mark_bb(inode->i_sb, map.m_pblk, map.m_len, 0); 8016e29f4362e2 Harshad Shirwadkar 2020-10-15 1733 goto next; 8016e29f4362e2 Harshad Shirwadkar 2020-10-15 1734 } 8016e29f4362e2 Harshad Shirwadkar 2020-10-15 1735 8016e29f4362e2 Harshad Shirwadkar 2020-10-15 1736 /* Range is mapped and needs a state change */ 8016e29f4362e2 Harshad Shirwadkar 2020-10-15 @1737 jbd_debug(1, "Converting from %d to %d %lld", 8016e29f4362e2 Harshad Shirwadkar 2020-10-15 1738 map.m_flags & EXT4_MAP_UNWRITTEN, 8016e29f4362e2 Harshad Shirwadkar 2020-10-15 1739 ext4_ext_is_unwritten(ex), map.m_pblk); 8016e29f4362e2 Harshad Shirwadkar 2020-10-15 1740 ret = ext4_ext_replay_update_ex(inode, cur, map.m_len, 8016e29f4362e2 Harshad Shirwadkar 2020-10-15 1741 ext4_ext_is_unwritten(ex), map.m_pblk); 8016e29f4362e2 Harshad Shirwadkar 2020-10-15 1742 if (ret) { 8016e29f4362e2 Harshad Shirwadkar 2020-10-15 1743 iput(inode); 8016e29f4362e2 Harshad Shirwadkar 2020-10-15 1744 return 0; 8016e29f4362e2 Harshad Shirwadkar 2020-10-15 1745 } 8016e29f4362e2 Harshad Shirwadkar 2020-10-15 1746 /* 8016e29f4362e2 Harshad Shirwadkar 2020-10-15 1747 * We may have split the extent tree while toggling the state. 8016e29f4362e2 Harshad Shirwadkar 2020-10-15 1748 * Try to shrink the extent tree now. 8016e29f4362e2 Harshad Shirwadkar 2020-10-15 1749 */ 8016e29f4362e2 Harshad Shirwadkar 2020-10-15 1750 ext4_ext_replay_shrink_inode(inode, start + len); 8016e29f4362e2 Harshad Shirwadkar 2020-10-15 1751 next: 8016e29f4362e2 Harshad Shirwadkar 2020-10-15 1752 cur += map.m_len; 8016e29f4362e2 Harshad Shirwadkar 2020-10-15 1753 remaining -= map.m_len; 8016e29f4362e2 Harshad Shirwadkar 2020-10-15 1754 } 8016e29f4362e2 Harshad Shirwadkar 2020-10-15 1755 ext4_ext_replay_shrink_inode(inode, i_size_read(inode) >> 8016e29f4362e2 Harshad Shirwadkar 2020-10-15 1756 sb->s_blocksize_bits); 8016e29f4362e2 Harshad Shirwadkar 2020-10-15 1757 iput(inode); 8016e29f4362e2 Harshad Shirwadkar 2020-10-15 1758 return 0; 8016e29f4362e2 Harshad Shirwadkar 2020-10-15 1759 } 8016e29f4362e2 Harshad Shirwadkar 2020-10-15 1760 :::::: The code at line 1737 was first introduced by commit :::::: 8016e29f4362e285f0f7e38fadc61a5b7bdfdfa2 ext4: fast commit recovery path :::::: TO: Harshad Shirwadkar :::::: CC: Theodore Ts'o --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org