* [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
0 siblings, 1 reply; 3+ 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] 3+ 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 [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 22:16 ` Dave Chinner
2020-05-28 8:51 ` [kbuild-all] " Rong Chen
0 siblings, 1 reply; 3+ 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] 3+ 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
0 siblings, 0 replies; 3+ 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] 3+ messages in thread
end of thread, other threads:[~2020-05-28 8:52 UTC | newest]
Thread overview: 3+ 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 22:16 ` Dave Chinner
2020-05-28 8:51 ` [kbuild-all] " Rong Chen
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).