lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Date:   Sun, 7 Feb 2021 16:20:30 +0800
From:   kernel test robot <lkp@...el.com>
To:     Yang Li <yang.lee@...ux.alibaba.com>, shaggy@...nel.org
Cc:     kbuild-all@...ts.01.org, jfs-discussion@...ts.sourceforge.net,
        linux-kernel@...r.kernel.org, Yang Li <yang.lee@...ux.alibaba.com>
Subject: Re: [PATCH] jfs: turn diLog(), dataLog() and txLog() into void
 functions

Hi Yang,

Thank you for the patch! Yet something to improve:

[auto build test ERROR on shaggy/jfs-next]
[also build test ERROR on v5.11-rc6 next-20210125]
[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]

url:    https://github.com/0day-ci/linux/commits/Yang-Li/jfs-turn-diLog-dataLog-and-txLog-into-void-functions/20210207-143938
base:   https://github.com/kleikamp/linux-shaggy jfs-next
config: i386-randconfig-m021-20210207 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-15) 9.3.0
reproduce (this is a W=1 build):
        # https://github.com/0day-ci/linux/commit/8b7ab4ba41269109e7cb95106023e96d640842e9
        git remote add linux-review https://github.com/0day-ci/linux
        git fetch --no-tags linux-review Yang-Li/jfs-turn-diLog-dataLog-and-txLog-into-void-functions/20210207-143938
        git checkout 8b7ab4ba41269109e7cb95106023e96d640842e9
        # save the attached .config to linux build tree
        make W=1 ARCH=i386 

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

All errors (new ones prefixed by >>):

>> fs/jfs/jfs_txnmgr.c:1368:13: error: conflicting types for 'txLog'
    1368 | static void txLog(struct jfs_log *log, struct tblock *tblk, struct commit *cd)
         |             ^~~~~
   fs/jfs/jfs_txnmgr.c:162:12: note: previous declaration of 'txLog' was here
     162 | static int txLog(struct jfs_log * log, struct tblock * tblk,
         |            ^~~~~
>> fs/jfs/jfs_txnmgr.c:1424:13: error: conflicting types for 'diLog'
    1424 | static void diLog(struct jfs_log *log, struct tblock *tblk, struct lrd *lrd,
         |             ^~~~~
   fs/jfs/jfs_txnmgr.c:151:12: note: previous declaration of 'diLog' was here
     151 | static int diLog(struct jfs_log * log, struct tblock * tblk, struct lrd * lrd,
         |            ^~~~~
>> fs/jfs/jfs_txnmgr.c:1536:13: error: conflicting types for 'dataLog'
    1536 | static void dataLog(struct jfs_log *log, struct tblock *tblk, struct lrd *lrd,
         |             ^~~~~~~
   fs/jfs/jfs_txnmgr.c:153:12: note: previous declaration of 'dataLog' was here
     153 | static int dataLog(struct jfs_log * log, struct tblock * tblk, struct lrd * lrd,
         |            ^~~~~~~
   fs/jfs/jfs_txnmgr.c:151:12: warning: 'diLog' used but never defined
     151 | static int diLog(struct jfs_log * log, struct tblock * tblk, struct lrd * lrd,
         |            ^~~~~
   fs/jfs/jfs_txnmgr.c:153:12: warning: 'dataLog' used but never defined
     153 | static int dataLog(struct jfs_log * log, struct tblock * tblk, struct lrd * lrd,
         |            ^~~~~~~
   fs/jfs/jfs_txnmgr.c:162:12: warning: 'txLog' used but never defined
     162 | static int txLog(struct jfs_log * log, struct tblock * tblk,
         |            ^~~~~
   fs/jfs/jfs_txnmgr.c:1536:13: warning: 'dataLog' defined but not used [-Wunused-function]
    1536 | static void dataLog(struct jfs_log *log, struct tblock *tblk, struct lrd *lrd,
         |             ^~~~~~~
   fs/jfs/jfs_txnmgr.c:1424:13: warning: 'diLog' defined but not used [-Wunused-function]
    1424 | static void diLog(struct jfs_log *log, struct tblock *tblk, struct lrd *lrd,
         |             ^~~~~
   fs/jfs/jfs_txnmgr.c:1368:13: warning: 'txLog' defined but not used [-Wunused-function]
    1368 | static void txLog(struct jfs_log *log, struct tblock *tblk, struct commit *cd)
         |             ^~~~~


vim +/txLog +1368 fs/jfs/jfs_txnmgr.c

  1356	
  1357	/*
  1358	 * NAME:	txLog()
  1359	 *
  1360	 * FUNCTION:	Writes AFTER log records for all lines modified
  1361	 *		by tid for segments specified by inodes in comdata.
  1362	 *		Code assumes only WRITELOCKS are recorded in lockwords.
  1363	 *
  1364	 * PARAMETERS:
  1365	 *
  1366	 * RETURN :
  1367	 */
> 1368	static void txLog(struct jfs_log *log, struct tblock *tblk, struct commit *cd)
  1369	{
  1370		struct inode *ip;
  1371		lid_t lid;
  1372		struct tlock *tlck;
  1373		struct lrd *lrd = &cd->lrd;
  1374	
  1375		/*
  1376		 * write log record(s) for each tlock of transaction,
  1377		 */
  1378		for (lid = tblk->next; lid; lid = tlck->next) {
  1379			tlck = lid_to_tlock(lid);
  1380	
  1381			tlck->flag |= tlckLOG;
  1382	
  1383			/* initialize lrd common */
  1384			ip = tlck->ip;
  1385			lrd->aggregate = cpu_to_le32(JFS_SBI(ip->i_sb)->aggregate);
  1386			lrd->log.redopage.fileset = cpu_to_le32(JFS_IP(ip)->fileset);
  1387			lrd->log.redopage.inode = cpu_to_le32(ip->i_ino);
  1388	
  1389			/* write log record of page from the tlock */
  1390			switch (tlck->type & tlckTYPE) {
  1391			case tlckXTREE:
  1392				xtLog(log, tblk, lrd, tlck);
  1393				break;
  1394	
  1395			case tlckDTREE:
  1396				dtLog(log, tblk, lrd, tlck);
  1397				break;
  1398	
  1399			case tlckINODE:
  1400				diLog(log, tblk, lrd, tlck, cd);
  1401				break;
  1402	
  1403			case tlckMAP:
  1404				mapLog(log, tblk, lrd, tlck);
  1405				break;
  1406	
  1407			case tlckDATA:
  1408				dataLog(log, tblk, lrd, tlck);
  1409				break;
  1410	
  1411			default:
  1412				jfs_err("UFO tlock:0x%p", tlck);
  1413			}
  1414		}
  1415	
  1416		return;
  1417	}
  1418	
  1419	/*
  1420	 *	diLog()
  1421	 *
  1422	 * function:	log inode tlock and format maplock to update bmap;
  1423	 */
> 1424	static void diLog(struct jfs_log *log, struct tblock *tblk, struct lrd *lrd,
  1425			 struct tlock *tlck, struct commit *cd)
  1426	{
  1427		struct metapage *mp;
  1428		pxd_t *pxd;
  1429		struct pxd_lock *pxdlock;
  1430	
  1431		mp = tlck->mp;
  1432	
  1433		/* initialize as REDOPAGE record format */
  1434		lrd->log.redopage.type = cpu_to_le16(LOG_INODE);
  1435		lrd->log.redopage.l2linesize = cpu_to_le16(L2INODESLOTSIZE);
  1436	
  1437		pxd = &lrd->log.redopage.pxd;
  1438	
  1439		/*
  1440		 *	inode after image
  1441		 */
  1442		if (tlck->type & tlckENTRY) {
  1443			/* log after-image for logredo(): */
  1444			lrd->type = cpu_to_le16(LOG_REDOPAGE);
  1445			PXDaddress(pxd, mp->index);
  1446			PXDlength(pxd,
  1447				  mp->logical_size >> tblk->sb->s_blocksize_bits);
  1448			lrd->backchain = cpu_to_le32(lmLog(log, tblk, lrd, tlck));
  1449	
  1450			/* mark page as homeward bound */
  1451			tlck->flag |= tlckWRITEPAGE;
  1452		} else if (tlck->type & tlckFREE) {
  1453			/*
  1454			 *	free inode extent
  1455			 *
  1456			 * (pages of the freed inode extent have been invalidated and
  1457			 * a maplock for free of the extent has been formatted at
  1458			 * txLock() time);
  1459			 *
  1460			 * the tlock had been acquired on the inode allocation map page
  1461			 * (iag) that specifies the freed extent, even though the map
  1462			 * page is not itself logged, to prevent pageout of the map
  1463			 * page before the log;
  1464			 */
  1465	
  1466			/* log LOG_NOREDOINOEXT of the freed inode extent for
  1467			 * logredo() to start NoRedoPage filters, and to update
  1468			 * imap and bmap for free of the extent;
  1469			 */
  1470			lrd->type = cpu_to_le16(LOG_NOREDOINOEXT);
  1471			/*
  1472			 * For the LOG_NOREDOINOEXT record, we need
  1473			 * to pass the IAG number and inode extent
  1474			 * index (within that IAG) from which the
  1475			 * extent is being released.  These have been
  1476			 * passed to us in the iplist[1] and iplist[2].
  1477			 */
  1478			lrd->log.noredoinoext.iagnum =
  1479			    cpu_to_le32((u32) (size_t) cd->iplist[1]);
  1480			lrd->log.noredoinoext.inoext_idx =
  1481			    cpu_to_le32((u32) (size_t) cd->iplist[2]);
  1482	
  1483			pxdlock = (struct pxd_lock *) & tlck->lock;
  1484			*pxd = pxdlock->pxd;
  1485			lrd->backchain = cpu_to_le32(lmLog(log, tblk, lrd, NULL));
  1486	
  1487			/* update bmap */
  1488			tlck->flag |= tlckUPDATEMAP;
  1489	
  1490			/* mark page as homeward bound */
  1491			tlck->flag |= tlckWRITEPAGE;
  1492		} else
  1493			jfs_err("diLog: UFO type tlck:0x%p", tlck);
  1494	#ifdef  _JFS_WIP
  1495		/*
  1496		 *	alloc/free external EA extent
  1497		 *
  1498		 * a maplock for txUpdateMap() to update bPWMAP for alloc/free
  1499		 * of the extent has been formatted at txLock() time;
  1500		 */
  1501		else {
  1502			assert(tlck->type & tlckEA);
  1503	
  1504			/* log LOG_UPDATEMAP for logredo() to update bmap for
  1505			 * alloc of new (and free of old) external EA extent;
  1506			 */
  1507			lrd->type = cpu_to_le16(LOG_UPDATEMAP);
  1508			pxdlock = (struct pxd_lock *) & tlck->lock;
  1509			nlock = pxdlock->index;
  1510			for (i = 0; i < nlock; i++, pxdlock++) {
  1511				if (pxdlock->flag & mlckALLOCPXD)
  1512					lrd->log.updatemap.type =
  1513					    cpu_to_le16(LOG_ALLOCPXD);
  1514				else
  1515					lrd->log.updatemap.type =
  1516					    cpu_to_le16(LOG_FREEPXD);
  1517				lrd->log.updatemap.nxd = cpu_to_le16(1);
  1518				lrd->log.updatemap.pxd = pxdlock->pxd;
  1519				lrd->backchain =
  1520				    cpu_to_le32(lmLog(log, tblk, lrd, NULL));
  1521			}
  1522	
  1523			/* update bmap */
  1524			tlck->flag |= tlckUPDATEMAP;
  1525		}
  1526	#endif				/* _JFS_WIP */
  1527	
  1528		return;
  1529	}
  1530	
  1531	/*
  1532	 *	dataLog()
  1533	 *
  1534	 * function:	log data tlock
  1535	 */
> 1536	static void dataLog(struct jfs_log *log, struct tblock *tblk, struct lrd *lrd,
  1537		    struct tlock *tlck)
  1538	{
  1539		struct metapage *mp;
  1540		pxd_t *pxd;
  1541	
  1542		mp = tlck->mp;
  1543	
  1544		/* initialize as REDOPAGE record format */
  1545		lrd->log.redopage.type = cpu_to_le16(LOG_DATA);
  1546		lrd->log.redopage.l2linesize = cpu_to_le16(L2DATASLOTSIZE);
  1547	
  1548		pxd = &lrd->log.redopage.pxd;
  1549	
  1550		/* log after-image for logredo(): */
  1551		lrd->type = cpu_to_le16(LOG_REDOPAGE);
  1552	
  1553		if (jfs_dirtable_inline(tlck->ip)) {
  1554			/*
  1555			 * The table has been truncated, we've must have deleted
  1556			 * the last entry, so don't bother logging this
  1557			 */
  1558			mp->lid = 0;
  1559			grab_metapage(mp);
  1560			metapage_homeok(mp);
  1561			discard_metapage(mp);
  1562			tlck->mp = NULL;
  1563			return;
  1564		}
  1565	
  1566		PXDaddress(pxd, mp->index);
  1567		PXDlength(pxd, mp->logical_size >> tblk->sb->s_blocksize_bits);
  1568	
  1569		lrd->backchain = cpu_to_le32(lmLog(log, tblk, lrd, tlck));
  1570	
  1571		/* mark page as homeward bound */
  1572		tlck->flag |= tlckWRITEPAGE;
  1573	
  1574		return;
  1575	}
  1576	

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

Download attachment ".config.gz" of type "application/gzip" (38339 bytes)

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ