* [dgc-xfs:xfs-async-inode-reclaim 28/30] fs/xfs/xfs_inode.c:3432:1: warning: no previous prototype for 'xfs_iflush'
@ 2020-05-26 11:46 ` kbuild test robot
0 siblings, 0 replies; 6+ messages in thread
From: kbuild test robot @ 2020-05-26 11:46 UTC (permalink / raw)
To: Dave Chinner; +Cc: kbuild-all, linux-xfs
[-- Attachment #1: Type: text/plain, Size: 14500 bytes --]
tree: https://git.kernel.org/pub/scm/linux/kernel/git/dgc/linux-xfs.git xfs-async-inode-reclaim
head: a6b06a056446a604d909fd24f24c78f08f5be671
commit: 625d9019e66af4550a0ebcbc5dc04e68f41bc068 [28/30] xfs: rework xfs_iflush_cluster() dirty inode iteration
config: m68k-randconfig-r005-20200526 (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
git checkout 625d9019e66af4550a0ebcbc5dc04e68f41bc068
# 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: kbuild test robot <lkp@intel.com>
All warnings (new ones prefixed by >>, old ones prefixed by <<):
>> fs/xfs/xfs_inode.c:3432:1: warning: no previous prototype for 'xfs_iflush' [-Wmissing-prototypes]
3432 | xfs_iflush(
| ^~~~~~~~~~
vim +/xfs_iflush +3432 fs/xfs/xfs_inode.c
f6bba2017afb3bd Dave Chinner 2013-08-12 3430
625d9019e66af45 Dave Chinner 2020-05-22 3431 int
30ebf34422da620 Dave Chinner 2020-05-22 @3432 xfs_iflush(
93848a999cf9b9e Christoph Hellwig 2013-04-03 3433 struct xfs_inode *ip,
93848a999cf9b9e Christoph Hellwig 2013-04-03 3434 struct xfs_buf *bp)
^1da177e4c3f415 Linus Torvalds 2005-04-16 3435 {
93848a999cf9b9e Christoph Hellwig 2013-04-03 3436 struct xfs_inode_log_item *iip = ip->i_itemp;
93848a999cf9b9e Christoph Hellwig 2013-04-03 3437 struct xfs_dinode *dip;
93848a999cf9b9e Christoph Hellwig 2013-04-03 3438 struct xfs_mount *mp = ip->i_mount;
f20192991d79129 Brian Foster 2020-05-06 3439 int error;
^1da177e4c3f415 Linus Torvalds 2005-04-16 3440
579aa9caf552c63 Christoph Hellwig 2008-04-22 3441 ASSERT(xfs_isilocked(ip, XFS_ILOCK_EXCL|XFS_ILOCK_SHARED));
474fce067521a40 Christoph Hellwig 2011-12-18 3442 ASSERT(xfs_isiflocked(ip));
f7e67b20ecbbcb9 Christoph Hellwig 2020-05-18 3443 ASSERT(ip->i_df.if_format != XFS_DINODE_FMT_BTREE ||
daf83964a3681cf Christoph Hellwig 2020-05-18 3444 ip->i_df.if_nextents > XFS_IFORK_MAXEXT(ip, XFS_DATA_FORK));
93848a999cf9b9e Christoph Hellwig 2013-04-03 3445 ASSERT(iip != NULL && iip->ili_fields != 0);
1c72d829fa7a17b Dave Chinner 2020-05-22 3446 ASSERT(iip->ili_item.li_buf == bp);
^1da177e4c3f415 Linus Torvalds 2005-04-16 3447
88ee2df7f259113 Christoph Hellwig 2015-06-22 3448 dip = xfs_buf_offset(bp, ip->i_imap.im_boffset);
^1da177e4c3f415 Linus Torvalds 2005-04-16 3449
f20192991d79129 Brian Foster 2020-05-06 3450 /*
f20192991d79129 Brian Foster 2020-05-06 3451 * We don't flush the inode if any of the following checks fail, but we
f20192991d79129 Brian Foster 2020-05-06 3452 * do still update the log item and attach to the backing buffer as if
f20192991d79129 Brian Foster 2020-05-06 3453 * the flush happened. This is a formality to facilitate predictable
f20192991d79129 Brian Foster 2020-05-06 3454 * error handling as the caller will shutdown and fail the buffer.
f20192991d79129 Brian Foster 2020-05-06 3455 */
f20192991d79129 Brian Foster 2020-05-06 3456 error = -EFSCORRUPTED;
69ef921b55cc378 Christoph Hellwig 2011-07-08 3457 if (XFS_TEST_ERROR(dip->di_magic != cpu_to_be16(XFS_DINODE_MAGIC),
9e24cfd044853e0 Darrick J. Wong 2017-06-20 3458 mp, XFS_ERRTAG_IFLUSH_1)) {
6a19d9393a5402e Dave Chinner 2011-03-07 3459 xfs_alert_tag(mp, XFS_PTAG_IFLUSH,
c96900435fa9fdf Darrick J. Wong 2018-01-09 3460 "%s: Bad inode %Lu magic number 0x%x, ptr "PTR_FMT,
6a19d9393a5402e Dave Chinner 2011-03-07 3461 __func__, ip->i_ino, be16_to_cpu(dip->di_magic), dip);
f20192991d79129 Brian Foster 2020-05-06 3462 goto flush_out;
^1da177e4c3f415 Linus Torvalds 2005-04-16 3463 }
c19b3b05ae440de Dave Chinner 2016-02-09 3464 if (S_ISREG(VFS_I(ip)->i_mode)) {
^1da177e4c3f415 Linus Torvalds 2005-04-16 3465 if (XFS_TEST_ERROR(
f7e67b20ecbbcb9 Christoph Hellwig 2020-05-18 3466 ip->i_df.if_format != XFS_DINODE_FMT_EXTENTS &&
f7e67b20ecbbcb9 Christoph Hellwig 2020-05-18 3467 ip->i_df.if_format != XFS_DINODE_FMT_BTREE,
9e24cfd044853e0 Darrick J. Wong 2017-06-20 3468 mp, XFS_ERRTAG_IFLUSH_3)) {
6a19d9393a5402e Dave Chinner 2011-03-07 3469 xfs_alert_tag(mp, XFS_PTAG_IFLUSH,
c96900435fa9fdf Darrick J. Wong 2018-01-09 3470 "%s: Bad regular inode %Lu, ptr "PTR_FMT,
6a19d9393a5402e Dave Chinner 2011-03-07 3471 __func__, ip->i_ino, ip);
f20192991d79129 Brian Foster 2020-05-06 3472 goto flush_out;
^1da177e4c3f415 Linus Torvalds 2005-04-16 3473 }
c19b3b05ae440de Dave Chinner 2016-02-09 3474 } else if (S_ISDIR(VFS_I(ip)->i_mode)) {
^1da177e4c3f415 Linus Torvalds 2005-04-16 3475 if (XFS_TEST_ERROR(
f7e67b20ecbbcb9 Christoph Hellwig 2020-05-18 3476 ip->i_df.if_format != XFS_DINODE_FMT_EXTENTS &&
f7e67b20ecbbcb9 Christoph Hellwig 2020-05-18 3477 ip->i_df.if_format != XFS_DINODE_FMT_BTREE &&
f7e67b20ecbbcb9 Christoph Hellwig 2020-05-18 3478 ip->i_df.if_format != XFS_DINODE_FMT_LOCAL,
9e24cfd044853e0 Darrick J. Wong 2017-06-20 3479 mp, XFS_ERRTAG_IFLUSH_4)) {
6a19d9393a5402e Dave Chinner 2011-03-07 3480 xfs_alert_tag(mp, XFS_PTAG_IFLUSH,
c96900435fa9fdf Darrick J. Wong 2018-01-09 3481 "%s: Bad directory inode %Lu, ptr "PTR_FMT,
6a19d9393a5402e Dave Chinner 2011-03-07 3482 __func__, ip->i_ino, ip);
f20192991d79129 Brian Foster 2020-05-06 3483 goto flush_out;
^1da177e4c3f415 Linus Torvalds 2005-04-16 3484 }
^1da177e4c3f415 Linus Torvalds 2005-04-16 3485 }
daf83964a3681cf Christoph Hellwig 2020-05-18 3486 if (XFS_TEST_ERROR(ip->i_df.if_nextents + xfs_ifork_nextents(ip->i_afp) >
9e24cfd044853e0 Darrick J. Wong 2017-06-20 3487 ip->i_d.di_nblocks, mp, XFS_ERRTAG_IFLUSH_5)) {
6a19d9393a5402e Dave Chinner 2011-03-07 3488 xfs_alert_tag(mp, XFS_PTAG_IFLUSH,
6a19d9393a5402e Dave Chinner 2011-03-07 3489 "%s: detected corrupt incore inode %Lu, "
c96900435fa9fdf Darrick J. Wong 2018-01-09 3490 "total extents = %d, nblocks = %Ld, ptr "PTR_FMT,
6a19d9393a5402e Dave Chinner 2011-03-07 3491 __func__, ip->i_ino,
daf83964a3681cf Christoph Hellwig 2020-05-18 3492 ip->i_df.if_nextents + xfs_ifork_nextents(ip->i_afp),
6a19d9393a5402e Dave Chinner 2011-03-07 3493 ip->i_d.di_nblocks, ip);
f20192991d79129 Brian Foster 2020-05-06 3494 goto flush_out;
^1da177e4c3f415 Linus Torvalds 2005-04-16 3495 }
^1da177e4c3f415 Linus Torvalds 2005-04-16 3496 if (XFS_TEST_ERROR(ip->i_d.di_forkoff > mp->m_sb.sb_inodesize,
9e24cfd044853e0 Darrick J. Wong 2017-06-20 3497 mp, XFS_ERRTAG_IFLUSH_6)) {
6a19d9393a5402e Dave Chinner 2011-03-07 3498 xfs_alert_tag(mp, XFS_PTAG_IFLUSH,
c96900435fa9fdf Darrick J. Wong 2018-01-09 3499 "%s: bad inode %Lu, forkoff 0x%x, ptr "PTR_FMT,
6a19d9393a5402e Dave Chinner 2011-03-07 3500 __func__, ip->i_ino, ip->i_d.di_forkoff, ip);
f20192991d79129 Brian Foster 2020-05-06 3501 goto flush_out;
^1da177e4c3f415 Linus Torvalds 2005-04-16 3502 }
e60896d8f2b8141 Dave Chinner 2013-07-24 3503
^1da177e4c3f415 Linus Torvalds 2005-04-16 3504 /*
263997a6842b27a Dave Chinner 2014-05-20 3505 * Inode item log recovery for v2 inodes are dependent on the
e60896d8f2b8141 Dave Chinner 2013-07-24 3506 * di_flushiter count for correct sequencing. We bump the flush
e60896d8f2b8141 Dave Chinner 2013-07-24 3507 * iteration count so we can detect flushes which postdate a log record
e60896d8f2b8141 Dave Chinner 2013-07-24 3508 * during recovery. This is redundant as we now log every change and
e60896d8f2b8141 Dave Chinner 2013-07-24 3509 * hence this can't happen but we need to still do it to ensure
e60896d8f2b8141 Dave Chinner 2013-07-24 3510 * backwards compatibility with old kernels that predate logging all
e60896d8f2b8141 Dave Chinner 2013-07-24 3511 * inode changes.
^1da177e4c3f415 Linus Torvalds 2005-04-16 3512 */
6471e9c5e7a109a Christoph Hellwig 2020-03-18 3513 if (!xfs_sb_version_has_v3inode(&mp->m_sb))
^1da177e4c3f415 Linus Torvalds 2005-04-16 3514 ip->i_d.di_flushiter++;
^1da177e4c3f415 Linus Torvalds 2005-04-16 3515
0f45a1b20cd8f9c Christoph Hellwig 2020-05-14 3516 /*
0f45a1b20cd8f9c Christoph Hellwig 2020-05-14 3517 * If there are inline format data / attr forks attached to this inode,
0f45a1b20cd8f9c Christoph Hellwig 2020-05-14 3518 * make sure they are not corrupt.
0f45a1b20cd8f9c Christoph Hellwig 2020-05-14 3519 */
f7e67b20ecbbcb9 Christoph Hellwig 2020-05-18 3520 if (ip->i_df.if_format == XFS_DINODE_FMT_LOCAL &&
0f45a1b20cd8f9c Christoph Hellwig 2020-05-14 3521 xfs_ifork_verify_local_data(ip))
0f45a1b20cd8f9c Christoph Hellwig 2020-05-14 3522 goto flush_out;
f7e67b20ecbbcb9 Christoph Hellwig 2020-05-18 3523 if (ip->i_afp && ip->i_afp->if_format == XFS_DINODE_FMT_LOCAL &&
0f45a1b20cd8f9c Christoph Hellwig 2020-05-14 3524 xfs_ifork_verify_local_attr(ip))
f20192991d79129 Brian Foster 2020-05-06 3525 goto flush_out;
005c5db8fd7b2c9 Darrick J. Wong 2017-03-28 3526
^1da177e4c3f415 Linus Torvalds 2005-04-16 3527 /*
3987848c7c2be11 Dave Chinner 2016-02-09 3528 * Copy the dirty parts of the inode into the on-disk inode. We always
3987848c7c2be11 Dave Chinner 2016-02-09 3529 * copy out the core of the inode, because if the inode is dirty at all
3987848c7c2be11 Dave Chinner 2016-02-09 3530 * the core must be.
^1da177e4c3f415 Linus Torvalds 2005-04-16 3531 */
93f958f9c41f0bf Dave Chinner 2016-02-09 3532 xfs_inode_to_disk(ip, dip, iip->ili_item.li_lsn);
^1da177e4c3f415 Linus Torvalds 2005-04-16 3533
^1da177e4c3f415 Linus Torvalds 2005-04-16 3534 /* Wrap, we never let the log put out DI_MAX_FLUSH */
^1da177e4c3f415 Linus Torvalds 2005-04-16 3535 if (ip->i_d.di_flushiter == DI_MAX_FLUSH)
^1da177e4c3f415 Linus Torvalds 2005-04-16 3536 ip->i_d.di_flushiter = 0;
^1da177e4c3f415 Linus Torvalds 2005-04-16 3537
005c5db8fd7b2c9 Darrick J. Wong 2017-03-28 3538 xfs_iflush_fork(ip, dip, iip, XFS_DATA_FORK);
005c5db8fd7b2c9 Darrick J. Wong 2017-03-28 3539 if (XFS_IFORK_Q(ip))
005c5db8fd7b2c9 Darrick J. Wong 2017-03-28 3540 xfs_iflush_fork(ip, dip, iip, XFS_ATTR_FORK);
^1da177e4c3f415 Linus Torvalds 2005-04-16 3541 xfs_inobp_check(mp, bp);
^1da177e4c3f415 Linus Torvalds 2005-04-16 3542
^1da177e4c3f415 Linus Torvalds 2005-04-16 3543 /*
f5d8d5c4bf29c9f Christoph Hellwig 2012-02-29 3544 * We've recorded everything logged in the inode, so we'd like to clear
f5d8d5c4bf29c9f Christoph Hellwig 2012-02-29 3545 * the ili_fields bits so we don't log and flush things unnecessarily.
f5d8d5c4bf29c9f Christoph Hellwig 2012-02-29 3546 * However, we can't stop logging all this information until the data
f5d8d5c4bf29c9f Christoph Hellwig 2012-02-29 3547 * we've copied into the disk buffer is written to disk. If we did we
f5d8d5c4bf29c9f Christoph Hellwig 2012-02-29 3548 * might overwrite the copy of the inode in the log with all the data
f5d8d5c4bf29c9f Christoph Hellwig 2012-02-29 3549 * after re-logging only part of it, and in the face of a crash we
f5d8d5c4bf29c9f Christoph Hellwig 2012-02-29 3550 * wouldn't have all the data we need to recover.
^1da177e4c3f415 Linus Torvalds 2005-04-16 3551 *
f5d8d5c4bf29c9f Christoph Hellwig 2012-02-29 3552 * What we do is move the bits to the ili_last_fields field. When
f5d8d5c4bf29c9f Christoph Hellwig 2012-02-29 3553 * logging the inode, these bits are moved back to the ili_fields field.
f5d8d5c4bf29c9f Christoph Hellwig 2012-02-29 3554 * In the xfs_iflush_done() routine we clear ili_last_fields, since we
f5d8d5c4bf29c9f Christoph Hellwig 2012-02-29 3555 * know that the information those bits represent is permanently on
f5d8d5c4bf29c9f Christoph Hellwig 2012-02-29 3556 * disk. As long as the flush completes before the inode is logged
f5d8d5c4bf29c9f Christoph Hellwig 2012-02-29 3557 * again, then both ili_fields and ili_last_fields will be cleared.
f5d8d5c4bf29c9f Christoph Hellwig 2012-02-29 3558 */
f20192991d79129 Brian Foster 2020-05-06 3559 error = 0;
f20192991d79129 Brian Foster 2020-05-06 3560 flush_out:
1ecc0f6d602c683 Dave Chinner 2020-05-21 3561 spin_lock(&iip->ili_lock);
f5d8d5c4bf29c9f Christoph Hellwig 2012-02-29 3562 iip->ili_last_fields = iip->ili_fields;
f5d8d5c4bf29c9f Christoph Hellwig 2012-02-29 3563 iip->ili_fields = 0;
fc0561cefc04e78 Dave Chinner 2015-11-03 3564 iip->ili_fsync_fields = 0;
1ecc0f6d602c683 Dave Chinner 2020-05-21 3565 spin_unlock(&iip->ili_lock);
^1da177e4c3f415 Linus Torvalds 2005-04-16 3566
1ecc0f6d602c683 Dave Chinner 2020-05-21 3567 /*
1ecc0f6d602c683 Dave Chinner 2020-05-21 3568 * Store the current LSN of the inode so that we can tell whether the
1ecc0f6d602c683 Dave Chinner 2020-05-21 3569 * item has moved in the AIL from xfs_iflush_done().
1ecc0f6d602c683 Dave Chinner 2020-05-21 3570 */
4a70ad0597ce50d Dave Chinner 2020-05-22 3571 ASSERT(iip->ili_item.li_lsn);
7b2e2a31f5c23b5 David Chinner 2008-10-30 3572 xfs_trans_ail_copy_lsn(mp->m_ail, &iip->ili_flush_lsn,
7b2e2a31f5c23b5 David Chinner 2008-10-30 3573 &iip->ili_item.li_lsn);
^1da177e4c3f415 Linus Torvalds 2005-04-16 3574
93848a999cf9b9e Christoph Hellwig 2013-04-03 3575 /* generate the checksum. */
93848a999cf9b9e Christoph Hellwig 2013-04-03 3576 xfs_dinode_calc_crc(mp, dip);
f20192991d79129 Brian Foster 2020-05-06 3577 return error;
^1da177e4c3f415 Linus Torvalds 2005-04-16 3578 }
44a8736bd20a08e Darrick J. Wong 2018-07-25 3579
:::::: The code at line 3432 was first introduced by commit
:::::: 30ebf34422da6206608b0c6fba84b424f174b8c5 xfs: rename xfs_iflush_int()
:::::: TO: Dave Chinner <dchinner@redhat.com>
:::::: CC: Dave Chinner <david@fromorbit.com>
---
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: 21522 bytes --]
^ permalink raw reply [flat|nested] 6+ messages in thread
* [dgc-xfs:xfs-async-inode-reclaim 28/30] fs/xfs/xfs_inode.c:3432:1: warning: no previous prototype for 'xfs_iflush'
@ 2020-05-26 11:46 ` kbuild test robot
0 siblings, 0 replies; 6+ messages in thread
From: kbuild test robot @ 2020-05-26 11:46 UTC (permalink / raw)
To: kbuild-all
[-- Attachment #1: Type: text/plain, Size: 14685 bytes --]
tree: https://git.kernel.org/pub/scm/linux/kernel/git/dgc/linux-xfs.git xfs-async-inode-reclaim
head: a6b06a056446a604d909fd24f24c78f08f5be671
commit: 625d9019e66af4550a0ebcbc5dc04e68f41bc068 [28/30] xfs: rework xfs_iflush_cluster() dirty inode iteration
config: m68k-randconfig-r005-20200526 (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
git checkout 625d9019e66af4550a0ebcbc5dc04e68f41bc068
# 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: kbuild test robot <lkp@intel.com>
All warnings (new ones prefixed by >>, old ones prefixed by <<):
>> fs/xfs/xfs_inode.c:3432:1: warning: no previous prototype for 'xfs_iflush' [-Wmissing-prototypes]
3432 | xfs_iflush(
| ^~~~~~~~~~
vim +/xfs_iflush +3432 fs/xfs/xfs_inode.c
f6bba2017afb3bd Dave Chinner 2013-08-12 3430
625d9019e66af45 Dave Chinner 2020-05-22 3431 int
30ebf34422da620 Dave Chinner 2020-05-22 @3432 xfs_iflush(
93848a999cf9b9e Christoph Hellwig 2013-04-03 3433 struct xfs_inode *ip,
93848a999cf9b9e Christoph Hellwig 2013-04-03 3434 struct xfs_buf *bp)
^1da177e4c3f415 Linus Torvalds 2005-04-16 3435 {
93848a999cf9b9e Christoph Hellwig 2013-04-03 3436 struct xfs_inode_log_item *iip = ip->i_itemp;
93848a999cf9b9e Christoph Hellwig 2013-04-03 3437 struct xfs_dinode *dip;
93848a999cf9b9e Christoph Hellwig 2013-04-03 3438 struct xfs_mount *mp = ip->i_mount;
f20192991d79129 Brian Foster 2020-05-06 3439 int error;
^1da177e4c3f415 Linus Torvalds 2005-04-16 3440
579aa9caf552c63 Christoph Hellwig 2008-04-22 3441 ASSERT(xfs_isilocked(ip, XFS_ILOCK_EXCL|XFS_ILOCK_SHARED));
474fce067521a40 Christoph Hellwig 2011-12-18 3442 ASSERT(xfs_isiflocked(ip));
f7e67b20ecbbcb9 Christoph Hellwig 2020-05-18 3443 ASSERT(ip->i_df.if_format != XFS_DINODE_FMT_BTREE ||
daf83964a3681cf Christoph Hellwig 2020-05-18 3444 ip->i_df.if_nextents > XFS_IFORK_MAXEXT(ip, XFS_DATA_FORK));
93848a999cf9b9e Christoph Hellwig 2013-04-03 3445 ASSERT(iip != NULL && iip->ili_fields != 0);
1c72d829fa7a17b Dave Chinner 2020-05-22 3446 ASSERT(iip->ili_item.li_buf == bp);
^1da177e4c3f415 Linus Torvalds 2005-04-16 3447
88ee2df7f259113 Christoph Hellwig 2015-06-22 3448 dip = xfs_buf_offset(bp, ip->i_imap.im_boffset);
^1da177e4c3f415 Linus Torvalds 2005-04-16 3449
f20192991d79129 Brian Foster 2020-05-06 3450 /*
f20192991d79129 Brian Foster 2020-05-06 3451 * We don't flush the inode if any of the following checks fail, but we
f20192991d79129 Brian Foster 2020-05-06 3452 * do still update the log item and attach to the backing buffer as if
f20192991d79129 Brian Foster 2020-05-06 3453 * the flush happened. This is a formality to facilitate predictable
f20192991d79129 Brian Foster 2020-05-06 3454 * error handling as the caller will shutdown and fail the buffer.
f20192991d79129 Brian Foster 2020-05-06 3455 */
f20192991d79129 Brian Foster 2020-05-06 3456 error = -EFSCORRUPTED;
69ef921b55cc378 Christoph Hellwig 2011-07-08 3457 if (XFS_TEST_ERROR(dip->di_magic != cpu_to_be16(XFS_DINODE_MAGIC),
9e24cfd044853e0 Darrick J. Wong 2017-06-20 3458 mp, XFS_ERRTAG_IFLUSH_1)) {
6a19d9393a5402e Dave Chinner 2011-03-07 3459 xfs_alert_tag(mp, XFS_PTAG_IFLUSH,
c96900435fa9fdf Darrick J. Wong 2018-01-09 3460 "%s: Bad inode %Lu magic number 0x%x, ptr "PTR_FMT,
6a19d9393a5402e Dave Chinner 2011-03-07 3461 __func__, ip->i_ino, be16_to_cpu(dip->di_magic), dip);
f20192991d79129 Brian Foster 2020-05-06 3462 goto flush_out;
^1da177e4c3f415 Linus Torvalds 2005-04-16 3463 }
c19b3b05ae440de Dave Chinner 2016-02-09 3464 if (S_ISREG(VFS_I(ip)->i_mode)) {
^1da177e4c3f415 Linus Torvalds 2005-04-16 3465 if (XFS_TEST_ERROR(
f7e67b20ecbbcb9 Christoph Hellwig 2020-05-18 3466 ip->i_df.if_format != XFS_DINODE_FMT_EXTENTS &&
f7e67b20ecbbcb9 Christoph Hellwig 2020-05-18 3467 ip->i_df.if_format != XFS_DINODE_FMT_BTREE,
9e24cfd044853e0 Darrick J. Wong 2017-06-20 3468 mp, XFS_ERRTAG_IFLUSH_3)) {
6a19d9393a5402e Dave Chinner 2011-03-07 3469 xfs_alert_tag(mp, XFS_PTAG_IFLUSH,
c96900435fa9fdf Darrick J. Wong 2018-01-09 3470 "%s: Bad regular inode %Lu, ptr "PTR_FMT,
6a19d9393a5402e Dave Chinner 2011-03-07 3471 __func__, ip->i_ino, ip);
f20192991d79129 Brian Foster 2020-05-06 3472 goto flush_out;
^1da177e4c3f415 Linus Torvalds 2005-04-16 3473 }
c19b3b05ae440de Dave Chinner 2016-02-09 3474 } else if (S_ISDIR(VFS_I(ip)->i_mode)) {
^1da177e4c3f415 Linus Torvalds 2005-04-16 3475 if (XFS_TEST_ERROR(
f7e67b20ecbbcb9 Christoph Hellwig 2020-05-18 3476 ip->i_df.if_format != XFS_DINODE_FMT_EXTENTS &&
f7e67b20ecbbcb9 Christoph Hellwig 2020-05-18 3477 ip->i_df.if_format != XFS_DINODE_FMT_BTREE &&
f7e67b20ecbbcb9 Christoph Hellwig 2020-05-18 3478 ip->i_df.if_format != XFS_DINODE_FMT_LOCAL,
9e24cfd044853e0 Darrick J. Wong 2017-06-20 3479 mp, XFS_ERRTAG_IFLUSH_4)) {
6a19d9393a5402e Dave Chinner 2011-03-07 3480 xfs_alert_tag(mp, XFS_PTAG_IFLUSH,
c96900435fa9fdf Darrick J. Wong 2018-01-09 3481 "%s: Bad directory inode %Lu, ptr "PTR_FMT,
6a19d9393a5402e Dave Chinner 2011-03-07 3482 __func__, ip->i_ino, ip);
f20192991d79129 Brian Foster 2020-05-06 3483 goto flush_out;
^1da177e4c3f415 Linus Torvalds 2005-04-16 3484 }
^1da177e4c3f415 Linus Torvalds 2005-04-16 3485 }
daf83964a3681cf Christoph Hellwig 2020-05-18 3486 if (XFS_TEST_ERROR(ip->i_df.if_nextents + xfs_ifork_nextents(ip->i_afp) >
9e24cfd044853e0 Darrick J. Wong 2017-06-20 3487 ip->i_d.di_nblocks, mp, XFS_ERRTAG_IFLUSH_5)) {
6a19d9393a5402e Dave Chinner 2011-03-07 3488 xfs_alert_tag(mp, XFS_PTAG_IFLUSH,
6a19d9393a5402e Dave Chinner 2011-03-07 3489 "%s: detected corrupt incore inode %Lu, "
c96900435fa9fdf Darrick J. Wong 2018-01-09 3490 "total extents = %d, nblocks = %Ld, ptr "PTR_FMT,
6a19d9393a5402e Dave Chinner 2011-03-07 3491 __func__, ip->i_ino,
daf83964a3681cf Christoph Hellwig 2020-05-18 3492 ip->i_df.if_nextents + xfs_ifork_nextents(ip->i_afp),
6a19d9393a5402e Dave Chinner 2011-03-07 3493 ip->i_d.di_nblocks, ip);
f20192991d79129 Brian Foster 2020-05-06 3494 goto flush_out;
^1da177e4c3f415 Linus Torvalds 2005-04-16 3495 }
^1da177e4c3f415 Linus Torvalds 2005-04-16 3496 if (XFS_TEST_ERROR(ip->i_d.di_forkoff > mp->m_sb.sb_inodesize,
9e24cfd044853e0 Darrick J. Wong 2017-06-20 3497 mp, XFS_ERRTAG_IFLUSH_6)) {
6a19d9393a5402e Dave Chinner 2011-03-07 3498 xfs_alert_tag(mp, XFS_PTAG_IFLUSH,
c96900435fa9fdf Darrick J. Wong 2018-01-09 3499 "%s: bad inode %Lu, forkoff 0x%x, ptr "PTR_FMT,
6a19d9393a5402e Dave Chinner 2011-03-07 3500 __func__, ip->i_ino, ip->i_d.di_forkoff, ip);
f20192991d79129 Brian Foster 2020-05-06 3501 goto flush_out;
^1da177e4c3f415 Linus Torvalds 2005-04-16 3502 }
e60896d8f2b8141 Dave Chinner 2013-07-24 3503
^1da177e4c3f415 Linus Torvalds 2005-04-16 3504 /*
263997a6842b27a Dave Chinner 2014-05-20 3505 * Inode item log recovery for v2 inodes are dependent on the
e60896d8f2b8141 Dave Chinner 2013-07-24 3506 * di_flushiter count for correct sequencing. We bump the flush
e60896d8f2b8141 Dave Chinner 2013-07-24 3507 * iteration count so we can detect flushes which postdate a log record
e60896d8f2b8141 Dave Chinner 2013-07-24 3508 * during recovery. This is redundant as we now log every change and
e60896d8f2b8141 Dave Chinner 2013-07-24 3509 * hence this can't happen but we need to still do it to ensure
e60896d8f2b8141 Dave Chinner 2013-07-24 3510 * backwards compatibility with old kernels that predate logging all
e60896d8f2b8141 Dave Chinner 2013-07-24 3511 * inode changes.
^1da177e4c3f415 Linus Torvalds 2005-04-16 3512 */
6471e9c5e7a109a Christoph Hellwig 2020-03-18 3513 if (!xfs_sb_version_has_v3inode(&mp->m_sb))
^1da177e4c3f415 Linus Torvalds 2005-04-16 3514 ip->i_d.di_flushiter++;
^1da177e4c3f415 Linus Torvalds 2005-04-16 3515
0f45a1b20cd8f9c Christoph Hellwig 2020-05-14 3516 /*
0f45a1b20cd8f9c Christoph Hellwig 2020-05-14 3517 * If there are inline format data / attr forks attached to this inode,
0f45a1b20cd8f9c Christoph Hellwig 2020-05-14 3518 * make sure they are not corrupt.
0f45a1b20cd8f9c Christoph Hellwig 2020-05-14 3519 */
f7e67b20ecbbcb9 Christoph Hellwig 2020-05-18 3520 if (ip->i_df.if_format == XFS_DINODE_FMT_LOCAL &&
0f45a1b20cd8f9c Christoph Hellwig 2020-05-14 3521 xfs_ifork_verify_local_data(ip))
0f45a1b20cd8f9c Christoph Hellwig 2020-05-14 3522 goto flush_out;
f7e67b20ecbbcb9 Christoph Hellwig 2020-05-18 3523 if (ip->i_afp && ip->i_afp->if_format == XFS_DINODE_FMT_LOCAL &&
0f45a1b20cd8f9c Christoph Hellwig 2020-05-14 3524 xfs_ifork_verify_local_attr(ip))
f20192991d79129 Brian Foster 2020-05-06 3525 goto flush_out;
005c5db8fd7b2c9 Darrick J. Wong 2017-03-28 3526
^1da177e4c3f415 Linus Torvalds 2005-04-16 3527 /*
3987848c7c2be11 Dave Chinner 2016-02-09 3528 * Copy the dirty parts of the inode into the on-disk inode. We always
3987848c7c2be11 Dave Chinner 2016-02-09 3529 * copy out the core of the inode, because if the inode is dirty at all
3987848c7c2be11 Dave Chinner 2016-02-09 3530 * the core must be.
^1da177e4c3f415 Linus Torvalds 2005-04-16 3531 */
93f958f9c41f0bf Dave Chinner 2016-02-09 3532 xfs_inode_to_disk(ip, dip, iip->ili_item.li_lsn);
^1da177e4c3f415 Linus Torvalds 2005-04-16 3533
^1da177e4c3f415 Linus Torvalds 2005-04-16 3534 /* Wrap, we never let the log put out DI_MAX_FLUSH */
^1da177e4c3f415 Linus Torvalds 2005-04-16 3535 if (ip->i_d.di_flushiter == DI_MAX_FLUSH)
^1da177e4c3f415 Linus Torvalds 2005-04-16 3536 ip->i_d.di_flushiter = 0;
^1da177e4c3f415 Linus Torvalds 2005-04-16 3537
005c5db8fd7b2c9 Darrick J. Wong 2017-03-28 3538 xfs_iflush_fork(ip, dip, iip, XFS_DATA_FORK);
005c5db8fd7b2c9 Darrick J. Wong 2017-03-28 3539 if (XFS_IFORK_Q(ip))
005c5db8fd7b2c9 Darrick J. Wong 2017-03-28 3540 xfs_iflush_fork(ip, dip, iip, XFS_ATTR_FORK);
^1da177e4c3f415 Linus Torvalds 2005-04-16 3541 xfs_inobp_check(mp, bp);
^1da177e4c3f415 Linus Torvalds 2005-04-16 3542
^1da177e4c3f415 Linus Torvalds 2005-04-16 3543 /*
f5d8d5c4bf29c9f Christoph Hellwig 2012-02-29 3544 * We've recorded everything logged in the inode, so we'd like to clear
f5d8d5c4bf29c9f Christoph Hellwig 2012-02-29 3545 * the ili_fields bits so we don't log and flush things unnecessarily.
f5d8d5c4bf29c9f Christoph Hellwig 2012-02-29 3546 * However, we can't stop logging all this information until the data
f5d8d5c4bf29c9f Christoph Hellwig 2012-02-29 3547 * we've copied into the disk buffer is written to disk. If we did we
f5d8d5c4bf29c9f Christoph Hellwig 2012-02-29 3548 * might overwrite the copy of the inode in the log with all the data
f5d8d5c4bf29c9f Christoph Hellwig 2012-02-29 3549 * after re-logging only part of it, and in the face of a crash we
f5d8d5c4bf29c9f Christoph Hellwig 2012-02-29 3550 * wouldn't have all the data we need to recover.
^1da177e4c3f415 Linus Torvalds 2005-04-16 3551 *
f5d8d5c4bf29c9f Christoph Hellwig 2012-02-29 3552 * What we do is move the bits to the ili_last_fields field. When
f5d8d5c4bf29c9f Christoph Hellwig 2012-02-29 3553 * logging the inode, these bits are moved back to the ili_fields field.
f5d8d5c4bf29c9f Christoph Hellwig 2012-02-29 3554 * In the xfs_iflush_done() routine we clear ili_last_fields, since we
f5d8d5c4bf29c9f Christoph Hellwig 2012-02-29 3555 * know that the information those bits represent is permanently on
f5d8d5c4bf29c9f Christoph Hellwig 2012-02-29 3556 * disk. As long as the flush completes before the inode is logged
f5d8d5c4bf29c9f Christoph Hellwig 2012-02-29 3557 * again, then both ili_fields and ili_last_fields will be cleared.
f5d8d5c4bf29c9f Christoph Hellwig 2012-02-29 3558 */
f20192991d79129 Brian Foster 2020-05-06 3559 error = 0;
f20192991d79129 Brian Foster 2020-05-06 3560 flush_out:
1ecc0f6d602c683 Dave Chinner 2020-05-21 3561 spin_lock(&iip->ili_lock);
f5d8d5c4bf29c9f Christoph Hellwig 2012-02-29 3562 iip->ili_last_fields = iip->ili_fields;
f5d8d5c4bf29c9f Christoph Hellwig 2012-02-29 3563 iip->ili_fields = 0;
fc0561cefc04e78 Dave Chinner 2015-11-03 3564 iip->ili_fsync_fields = 0;
1ecc0f6d602c683 Dave Chinner 2020-05-21 3565 spin_unlock(&iip->ili_lock);
^1da177e4c3f415 Linus Torvalds 2005-04-16 3566
1ecc0f6d602c683 Dave Chinner 2020-05-21 3567 /*
1ecc0f6d602c683 Dave Chinner 2020-05-21 3568 * Store the current LSN of the inode so that we can tell whether the
1ecc0f6d602c683 Dave Chinner 2020-05-21 3569 * item has moved in the AIL from xfs_iflush_done().
1ecc0f6d602c683 Dave Chinner 2020-05-21 3570 */
4a70ad0597ce50d Dave Chinner 2020-05-22 3571 ASSERT(iip->ili_item.li_lsn);
7b2e2a31f5c23b5 David Chinner 2008-10-30 3572 xfs_trans_ail_copy_lsn(mp->m_ail, &iip->ili_flush_lsn,
7b2e2a31f5c23b5 David Chinner 2008-10-30 3573 &iip->ili_item.li_lsn);
^1da177e4c3f415 Linus Torvalds 2005-04-16 3574
93848a999cf9b9e Christoph Hellwig 2013-04-03 3575 /* generate the checksum. */
93848a999cf9b9e Christoph Hellwig 2013-04-03 3576 xfs_dinode_calc_crc(mp, dip);
f20192991d79129 Brian Foster 2020-05-06 3577 return error;
^1da177e4c3f415 Linus Torvalds 2005-04-16 3578 }
44a8736bd20a08e Darrick J. Wong 2018-07-25 3579
:::::: The code at line 3432 was first introduced by commit
:::::: 30ebf34422da6206608b0c6fba84b424f174b8c5 xfs: rename xfs_iflush_int()
:::::: TO: Dave Chinner <dchinner@redhat.com>
:::::: CC: Dave Chinner <david@fromorbit.com>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org
[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 21522 bytes --]
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [dgc-xfs:xfs-async-inode-reclaim 28/30] fs/xfs/xfs_inode.c:3432:1: warning: no previous prototype for 'xfs_iflush'
2020-05-26 11:46 ` kbuild test robot
@ 2020-05-26 22:16 ` Dave Chinner
-1 siblings, 0 replies; 6+ messages in thread
From: Dave Chinner @ 2020-05-26 22:16 UTC (permalink / raw)
To: kbuild test robot; +Cc: kbuild-all, linux-xfs
On Tue, May 26, 2020 at 07:46:45PM +0800, kbuild test robot wrote:
> tree: https://git.kernel.org/pub/scm/linux/kernel/git/dgc/linux-xfs.git xfs-async-inode-reclaim
Hiya kbuild robot!
Can you drop all the list cc's from build failures for this repo?
Nobody but me really needs to see all the breakage in this tree...
> :::::: The code at line 3432 was first introduced by commit
> :::::: 30ebf34422da6206608b0c6fba84b424f174b8c5 xfs: rename xfs_iflush_int()
>
> :::::: TO: Dave Chinner <dchinner@redhat.com>
> :::::: CC: Dave Chinner <david@fromorbit.com>
Also, I don't think this is doing what you expect, either, because
this build error was only sent to david@fromorbit.com and was not
CC'd to the author of the commit which is dchinner@redhat.com....
Cheers,
Dave.
--
Dave Chinner
david@fromorbit.com
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [dgc-xfs:xfs-async-inode-reclaim 28/30] fs/xfs/xfs_inode.c:3432:1: warning: no previous prototype for 'xfs_iflush'
@ 2020-05-26 22:16 ` Dave Chinner
0 siblings, 0 replies; 6+ messages in thread
From: Dave Chinner @ 2020-05-26 22:16 UTC (permalink / raw)
To: kbuild-all
[-- Attachment #1: Type: text/plain, Size: 843 bytes --]
On Tue, May 26, 2020 at 07:46:45PM +0800, kbuild test robot wrote:
> tree: https://git.kernel.org/pub/scm/linux/kernel/git/dgc/linux-xfs.git xfs-async-inode-reclaim
Hiya kbuild robot!
Can you drop all the list cc's from build failures for this repo?
Nobody but me really needs to see all the breakage in this tree...
> :::::: The code at line 3432 was first introduced by commit
> :::::: 30ebf34422da6206608b0c6fba84b424f174b8c5 xfs: rename xfs_iflush_int()
>
> :::::: TO: Dave Chinner <dchinner@redhat.com>
> :::::: CC: Dave Chinner <david@fromorbit.com>
Also, I don't think this is doing what you expect, either, because
this build error was only sent to david(a)fromorbit.com and was not
CC'd to the author of the commit which is dchinner(a)redhat.com....
Cheers,
Dave.
--
Dave Chinner
david(a)fromorbit.com
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [kbuild-all] Re: [dgc-xfs:xfs-async-inode-reclaim 28/30] fs/xfs/xfs_inode.c:3432:1: warning: no previous prototype for 'xfs_iflush'
2020-05-26 22:16 ` Dave Chinner
@ 2020-05-28 8:51 ` Rong Chen
-1 siblings, 0 replies; 6+ messages in thread
From: Rong Chen @ 2020-05-28 8:51 UTC (permalink / raw)
To: Dave Chinner, kbuild test robot; +Cc: kbuild-all, linux-xfs
On 5/27/20 6:16 AM, Dave Chinner wrote:
> On Tue, May 26, 2020 at 07:46:45PM +0800, kbuild test robot wrote:
>> tree: https://git.kernel.org/pub/scm/linux/kernel/git/dgc/linux-xfs.git xfs-async-inode-reclaim
> Hiya kbuild robot!
>
> Can you drop all the list cc's from build failures for this repo?
> Nobody but me really needs to see all the breakage in this tree...
Hi Dave,
Thanks for the feedback, we have marked the repo as private:
https://github.com/intel/lkp-tests/blob/master/repo/linux/dgc-xfs
>
>> :::::: The code at line 3432 was first introduced by commit
>> :::::: 30ebf34422da6206608b0c6fba84b424f174b8c5 xfs: rename xfs_iflush_int()
>>
>> :::::: TO: Dave Chinner <dchinner@redhat.com>
>> :::::: CC: Dave Chinner <david@fromorbit.com>
> Also, I don't think this is doing what you expect, either, because
> this build error was only sent to david@fromorbit.com and was not
> CC'd to the author of the commit which is dchinner@redhat.com....
We have fixed it to avoid force changing "Dave Chinner" to "Dave Chinner
<david@fromorbit.com>".
Best Regards,
Rong Chen
>
> Cheers,
>
> Dave.
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [dgc-xfs:xfs-async-inode-reclaim 28/30] fs/xfs/xfs_inode.c:3432:1: warning: no previous prototype for 'xfs_iflush'
@ 2020-05-28 8:51 ` Rong Chen
0 siblings, 0 replies; 6+ messages in thread
From: Rong Chen @ 2020-05-28 8:51 UTC (permalink / raw)
To: kbuild-all
[-- Attachment #1: Type: text/plain, Size: 1149 bytes --]
On 5/27/20 6:16 AM, Dave Chinner wrote:
> On Tue, May 26, 2020 at 07:46:45PM +0800, kbuild test robot wrote:
>> tree: https://git.kernel.org/pub/scm/linux/kernel/git/dgc/linux-xfs.git xfs-async-inode-reclaim
> Hiya kbuild robot!
>
> Can you drop all the list cc's from build failures for this repo?
> Nobody but me really needs to see all the breakage in this tree...
Hi Dave,
Thanks for the feedback, we have marked the repo as private:
https://github.com/intel/lkp-tests/blob/master/repo/linux/dgc-xfs
>
>> :::::: The code at line 3432 was first introduced by commit
>> :::::: 30ebf34422da6206608b0c6fba84b424f174b8c5 xfs: rename xfs_iflush_int()
>>
>> :::::: TO: Dave Chinner <dchinner@redhat.com>
>> :::::: CC: Dave Chinner <david@fromorbit.com>
> Also, I don't think this is doing what you expect, either, because
> this build error was only sent to david(a)fromorbit.com and was not
> CC'd to the author of the commit which is dchinner(a)redhat.com....
We have fixed it to avoid force changing "Dave Chinner" to "Dave Chinner
<david@fromorbit.com>".
Best Regards,
Rong Chen
>
> Cheers,
>
> Dave.
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2020-05-28 8:52 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-05-26 11:46 [dgc-xfs:xfs-async-inode-reclaim 28/30] fs/xfs/xfs_inode.c:3432:1: warning: no previous prototype for 'xfs_iflush' kbuild test robot
2020-05-26 11:46 ` kbuild test robot
2020-05-26 22:16 ` Dave Chinner
2020-05-26 22:16 ` Dave Chinner
2020-05-28 8:51 ` [kbuild-all] " Rong Chen
2020-05-28 8:51 ` Rong Chen
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.