All of lore.kernel.org
 help / color / mirror / Atom feed
* [chao-linux:feature/dax 3/9] fs/f2fs/gc.c:1629:9: error: void value not ignored as it ought to be
@ 2021-08-08 17:34 ` kernel test robot
  0 siblings, 0 replies; 2+ messages in thread
From: kernel test robot @ 2021-08-08 17:34 UTC (permalink / raw)
  To: Chao Yu, Chao Yu; +Cc: kbuild-all, Chao Yu, Chao Yu, linux-kernel

[-- Attachment #1: Type: text/plain, Size: 6649 bytes --]

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/chao/linux.git feature/dax
head:   fe9932d5af4ceade2736e4a3a8c245e05331c392
commit: 3439077550d3f6366feeb4f09da20162e3a4c86c [3/9] f2fs: support migrate page in dax device
config: riscv-randconfig-r015-20210808 (attached as .config)
compiler: riscv64-linux-gcc (GCC) 10.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/chao/linux.git/commit/?id=3439077550d3f6366feeb4f09da20162e3a4c86c
        git remote add chao-linux https://git.kernel.org/pub/scm/linux/kernel/git/chao/linux.git
        git fetch --no-tags chao-linux feature/dax
        git checkout 3439077550d3f6366feeb4f09da20162e3a4c86c
        # save the attached .config to linux build tree
        mkdir build_dir
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-10.3.0 make.cross O=build_dir ARCH=riscv SHELL=/bin/bash fs/f2fs/

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>

All errors (new ones prefixed by >>):

   fs/f2fs/gc.c: In function 'gc_data_segment':
>> fs/f2fs/gc.c:1629:9: error: void value not ignored as it ought to be
    1629 |     err = dax_move_data_page(inode, start_bidx,
         |         ^


vim +1629 fs/f2fs/gc.c

  1491	
  1492	/*
  1493	 * This function tries to get parent node of victim data block, and identifies
  1494	 * data block validity. If the block is valid, copy that with cold status and
  1495	 * modify parent node.
  1496	 * If the parent node is not valid or the data block address is different,
  1497	 * the victim data block is ignored.
  1498	 */
  1499	static int gc_data_segment(struct f2fs_sb_info *sbi, struct f2fs_summary *sum,
  1500			struct gc_inode_list *gc_list, unsigned int segno, int gc_type,
  1501			bool force_migrate)
  1502	{
  1503		struct super_block *sb = sbi->sb;
  1504		struct f2fs_summary *entry;
  1505		block_t start_addr;
  1506		int off;
  1507		int phase = 0;
  1508		int submitted = 0;
  1509		unsigned int usable_blks_in_seg = f2fs_usable_blks_in_seg(sbi, segno);
  1510	
  1511		start_addr = START_BLOCK(sbi, segno);
  1512	
  1513	next_step:
  1514		entry = sum;
  1515	
  1516		for (off = 0; off < usable_blks_in_seg; off++, entry++) {
  1517			struct page *data_page;
  1518			struct inode *inode;
  1519			struct node_info dni; /* dnode info for the data */
  1520			unsigned int ofs_in_node, nofs;
  1521			block_t start_bidx;
  1522			nid_t nid = le32_to_cpu(entry->nid);
  1523	
  1524			/*
  1525			 * stop BG_GC if there is not enough free sections.
  1526			 * Or, stop GC if the segment becomes fully valid caused by
  1527			 * race condition along with SSR block allocation.
  1528			 */
  1529			if ((gc_type == BG_GC && has_not_enough_free_secs(sbi, 0, 0)) ||
  1530				(!force_migrate && get_valid_blocks(sbi, segno, true) ==
  1531								BLKS_PER_SEC(sbi)))
  1532				return submitted;
  1533	
  1534			if (check_valid_map(sbi, segno, off) == 0)
  1535				continue;
  1536	
  1537			if (phase == 0) {
  1538				f2fs_ra_meta_pages(sbi, NAT_BLOCK_OFFSET(nid), 1,
  1539								META_NAT, true);
  1540				continue;
  1541			}
  1542	
  1543			if (phase == 1) {
  1544				f2fs_ra_node_page(sbi, nid);
  1545				continue;
  1546			}
  1547	
  1548			/* Get an inode by ino with checking validity */
  1549			if (!is_alive(sbi, entry, &dni, start_addr + off, &nofs))
  1550				continue;
  1551	
  1552			if (phase == 2) {
  1553				f2fs_ra_node_page(sbi, dni.ino);
  1554				continue;
  1555			}
  1556	
  1557			ofs_in_node = le16_to_cpu(entry->ofs_in_node);
  1558	
  1559			if (phase == 3) {
  1560				inode = f2fs_iget(sb, dni.ino);
  1561				if (IS_ERR(inode) || is_bad_inode(inode))
  1562					continue;
  1563	
  1564				if (IS_DAX(inode)) {
  1565					add_gc_inode(gc_list, inode);
  1566					continue;
  1567				}
  1568	
  1569				if (!down_write_trylock(
  1570					&F2FS_I(inode)->i_gc_rwsem[WRITE])) {
  1571					iput(inode);
  1572					sbi->skipped_gc_rwsem++;
  1573					continue;
  1574				}
  1575	
  1576				start_bidx = f2fs_start_bidx_of_node(nofs, inode) +
  1577									ofs_in_node;
  1578	
  1579				if (f2fs_post_read_required(inode)) {
  1580					int err = ra_data_block(inode, start_bidx);
  1581	
  1582					up_write(&F2FS_I(inode)->i_gc_rwsem[WRITE]);
  1583					if (err) {
  1584						iput(inode);
  1585						continue;
  1586					}
  1587					add_gc_inode(gc_list, inode);
  1588					continue;
  1589				}
  1590	
  1591				data_page = f2fs_get_read_data_page(inode,
  1592							start_bidx, REQ_RAHEAD, true);
  1593				up_write(&F2FS_I(inode)->i_gc_rwsem[WRITE]);
  1594				if (IS_ERR(data_page)) {
  1595					iput(inode);
  1596					continue;
  1597				}
  1598	
  1599				f2fs_put_page(data_page, 0);
  1600				add_gc_inode(gc_list, inode);
  1601				continue;
  1602			}
  1603	
  1604			/* phase 4 */
  1605			inode = find_gc_inode(gc_list, dni.ino);
  1606			if (inode) {
  1607				struct f2fs_inode_info *fi = F2FS_I(inode);
  1608				bool locked = false;
  1609				int err;
  1610	
  1611				if (S_ISREG(inode->i_mode)) {
  1612					if (!down_write_trylock(&fi->i_gc_rwsem[READ]))
  1613						continue;
  1614					if (!down_write_trylock(
  1615							&fi->i_gc_rwsem[WRITE])) {
  1616						sbi->skipped_gc_rwsem++;
  1617						up_write(&fi->i_gc_rwsem[READ]);
  1618						continue;
  1619					}
  1620					locked = true;
  1621	
  1622					/* wait for all inflight aio data */
  1623					inode_dio_wait(inode);
  1624				}
  1625	
  1626				start_bidx = f2fs_start_bidx_of_node(nofs, inode)
  1627									+ ofs_in_node;
  1628				if (IS_DAX(inode))
> 1629					err = dax_move_data_page(inode, start_bidx,
  1630								gc_type, segno, off);
  1631				else if (f2fs_post_read_required(inode))
  1632					err = move_data_block(inode, start_bidx,
  1633								gc_type, segno, off);
  1634				else
  1635					err = move_data_page(inode, start_bidx, gc_type,
  1636									segno, off);
  1637	
  1638				if (!err && (gc_type == FG_GC ||
  1639						f2fs_post_read_required(inode)))
  1640					submitted++;
  1641	
  1642				if (locked) {
  1643					up_write(&fi->i_gc_rwsem[WRITE]);
  1644					up_write(&fi->i_gc_rwsem[READ]);
  1645				}
  1646	
  1647				stat_inc_data_blk_count(sbi, 1, gc_type);
  1648			}
  1649		}
  1650	
  1651		if (++phase < 5)
  1652			goto next_step;
  1653	
  1654		return submitted;
  1655	}
  1656	

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org

[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 41427 bytes --]

^ permalink raw reply	[flat|nested] 2+ messages in thread

* [chao-linux:feature/dax 3/9] fs/f2fs/gc.c:1629:9: error: void value not ignored as it ought to be
@ 2021-08-08 17:34 ` kernel test robot
  0 siblings, 0 replies; 2+ messages in thread
From: kernel test robot @ 2021-08-08 17:34 UTC (permalink / raw)
  To: kbuild-all

[-- Attachment #1: Type: text/plain, Size: 6848 bytes --]

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/chao/linux.git feature/dax
head:   fe9932d5af4ceade2736e4a3a8c245e05331c392
commit: 3439077550d3f6366feeb4f09da20162e3a4c86c [3/9] f2fs: support migrate page in dax device
config: riscv-randconfig-r015-20210808 (attached as .config)
compiler: riscv64-linux-gcc (GCC) 10.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/chao/linux.git/commit/?id=3439077550d3f6366feeb4f09da20162e3a4c86c
        git remote add chao-linux https://git.kernel.org/pub/scm/linux/kernel/git/chao/linux.git
        git fetch --no-tags chao-linux feature/dax
        git checkout 3439077550d3f6366feeb4f09da20162e3a4c86c
        # save the attached .config to linux build tree
        mkdir build_dir
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-10.3.0 make.cross O=build_dir ARCH=riscv SHELL=/bin/bash fs/f2fs/

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>

All errors (new ones prefixed by >>):

   fs/f2fs/gc.c: In function 'gc_data_segment':
>> fs/f2fs/gc.c:1629:9: error: void value not ignored as it ought to be
    1629 |     err = dax_move_data_page(inode, start_bidx,
         |         ^


vim +1629 fs/f2fs/gc.c

  1491	
  1492	/*
  1493	 * This function tries to get parent node of victim data block, and identifies
  1494	 * data block validity. If the block is valid, copy that with cold status and
  1495	 * modify parent node.
  1496	 * If the parent node is not valid or the data block address is different,
  1497	 * the victim data block is ignored.
  1498	 */
  1499	static int gc_data_segment(struct f2fs_sb_info *sbi, struct f2fs_summary *sum,
  1500			struct gc_inode_list *gc_list, unsigned int segno, int gc_type,
  1501			bool force_migrate)
  1502	{
  1503		struct super_block *sb = sbi->sb;
  1504		struct f2fs_summary *entry;
  1505		block_t start_addr;
  1506		int off;
  1507		int phase = 0;
  1508		int submitted = 0;
  1509		unsigned int usable_blks_in_seg = f2fs_usable_blks_in_seg(sbi, segno);
  1510	
  1511		start_addr = START_BLOCK(sbi, segno);
  1512	
  1513	next_step:
  1514		entry = sum;
  1515	
  1516		for (off = 0; off < usable_blks_in_seg; off++, entry++) {
  1517			struct page *data_page;
  1518			struct inode *inode;
  1519			struct node_info dni; /* dnode info for the data */
  1520			unsigned int ofs_in_node, nofs;
  1521			block_t start_bidx;
  1522			nid_t nid = le32_to_cpu(entry->nid);
  1523	
  1524			/*
  1525			 * stop BG_GC if there is not enough free sections.
  1526			 * Or, stop GC if the segment becomes fully valid caused by
  1527			 * race condition along with SSR block allocation.
  1528			 */
  1529			if ((gc_type == BG_GC && has_not_enough_free_secs(sbi, 0, 0)) ||
  1530				(!force_migrate && get_valid_blocks(sbi, segno, true) ==
  1531								BLKS_PER_SEC(sbi)))
  1532				return submitted;
  1533	
  1534			if (check_valid_map(sbi, segno, off) == 0)
  1535				continue;
  1536	
  1537			if (phase == 0) {
  1538				f2fs_ra_meta_pages(sbi, NAT_BLOCK_OFFSET(nid), 1,
  1539								META_NAT, true);
  1540				continue;
  1541			}
  1542	
  1543			if (phase == 1) {
  1544				f2fs_ra_node_page(sbi, nid);
  1545				continue;
  1546			}
  1547	
  1548			/* Get an inode by ino with checking validity */
  1549			if (!is_alive(sbi, entry, &dni, start_addr + off, &nofs))
  1550				continue;
  1551	
  1552			if (phase == 2) {
  1553				f2fs_ra_node_page(sbi, dni.ino);
  1554				continue;
  1555			}
  1556	
  1557			ofs_in_node = le16_to_cpu(entry->ofs_in_node);
  1558	
  1559			if (phase == 3) {
  1560				inode = f2fs_iget(sb, dni.ino);
  1561				if (IS_ERR(inode) || is_bad_inode(inode))
  1562					continue;
  1563	
  1564				if (IS_DAX(inode)) {
  1565					add_gc_inode(gc_list, inode);
  1566					continue;
  1567				}
  1568	
  1569				if (!down_write_trylock(
  1570					&F2FS_I(inode)->i_gc_rwsem[WRITE])) {
  1571					iput(inode);
  1572					sbi->skipped_gc_rwsem++;
  1573					continue;
  1574				}
  1575	
  1576				start_bidx = f2fs_start_bidx_of_node(nofs, inode) +
  1577									ofs_in_node;
  1578	
  1579				if (f2fs_post_read_required(inode)) {
  1580					int err = ra_data_block(inode, start_bidx);
  1581	
  1582					up_write(&F2FS_I(inode)->i_gc_rwsem[WRITE]);
  1583					if (err) {
  1584						iput(inode);
  1585						continue;
  1586					}
  1587					add_gc_inode(gc_list, inode);
  1588					continue;
  1589				}
  1590	
  1591				data_page = f2fs_get_read_data_page(inode,
  1592							start_bidx, REQ_RAHEAD, true);
  1593				up_write(&F2FS_I(inode)->i_gc_rwsem[WRITE]);
  1594				if (IS_ERR(data_page)) {
  1595					iput(inode);
  1596					continue;
  1597				}
  1598	
  1599				f2fs_put_page(data_page, 0);
  1600				add_gc_inode(gc_list, inode);
  1601				continue;
  1602			}
  1603	
  1604			/* phase 4 */
  1605			inode = find_gc_inode(gc_list, dni.ino);
  1606			if (inode) {
  1607				struct f2fs_inode_info *fi = F2FS_I(inode);
  1608				bool locked = false;
  1609				int err;
  1610	
  1611				if (S_ISREG(inode->i_mode)) {
  1612					if (!down_write_trylock(&fi->i_gc_rwsem[READ]))
  1613						continue;
  1614					if (!down_write_trylock(
  1615							&fi->i_gc_rwsem[WRITE])) {
  1616						sbi->skipped_gc_rwsem++;
  1617						up_write(&fi->i_gc_rwsem[READ]);
  1618						continue;
  1619					}
  1620					locked = true;
  1621	
  1622					/* wait for all inflight aio data */
  1623					inode_dio_wait(inode);
  1624				}
  1625	
  1626				start_bidx = f2fs_start_bidx_of_node(nofs, inode)
  1627									+ ofs_in_node;
  1628				if (IS_DAX(inode))
> 1629					err = dax_move_data_page(inode, start_bidx,
  1630								gc_type, segno, off);
  1631				else if (f2fs_post_read_required(inode))
  1632					err = move_data_block(inode, start_bidx,
  1633								gc_type, segno, off);
  1634				else
  1635					err = move_data_page(inode, start_bidx, gc_type,
  1636									segno, off);
  1637	
  1638				if (!err && (gc_type == FG_GC ||
  1639						f2fs_post_read_required(inode)))
  1640					submitted++;
  1641	
  1642				if (locked) {
  1643					up_write(&fi->i_gc_rwsem[WRITE]);
  1644					up_write(&fi->i_gc_rwsem[READ]);
  1645				}
  1646	
  1647				stat_inc_data_blk_count(sbi, 1, gc_type);
  1648			}
  1649		}
  1650	
  1651		if (++phase < 5)
  1652			goto next_step;
  1653	
  1654		return submitted;
  1655	}
  1656	

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org

[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 41427 bytes --]

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2021-08-08 17:35 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-08-08 17:34 [chao-linux:feature/dax 3/9] fs/f2fs/gc.c:1629:9: error: void value not ignored as it ought to be kernel test robot
2021-08-08 17:34 ` kernel test robot

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.