From: kernel test robot <lkp@intel.com>
To: Yu Kuai <yukuai1@huaweicloud.com>
Cc: oe-kbuild-all@lists.linux.dev
Subject: Re: [RFC v4 linux-next 19/19] fs & block: remove bdev->bd_inode
Date: Sun, 25 Feb 2024 08:06:48 +0800 [thread overview]
Message-ID: <202402250747.57bivGGZ-lkp@intel.com> (raw)
In-Reply-To: <20240222124555.2049140-20-yukuai1@huaweicloud.com>
Hi Yu,
[This is a private test report for your RFC patch.]
kernel test robot noticed the following build warnings:
[auto build test WARNING on next-20240221]
url: https://github.com/intel-lab-lkp/linux/commits/Yu-Kuai/block-move-two-helpers-into-bdev-c/20240222-205510
base: next-20240221
patch link: https://lore.kernel.org/r/20240222124555.2049140-20-yukuai1%40huaweicloud.com
patch subject: [RFC v4 linux-next 19/19] fs & block: remove bdev->bd_inode
config: i386-buildonly-randconfig-002-20240225 (https://download.01.org/0day-ci/archive/20240225/202402250747.57bivGGZ-lkp@intel.com/config)
compiler: gcc-12 (Debian 12.2.0-14) 12.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240225/202402250747.57bivGGZ-lkp@intel.com/reproduce)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202402250747.57bivGGZ-lkp@intel.com/
All warnings (new ones prefixed by >>):
>> fs/buffer.c:1702: warning: Function parameter or struct member 'bd_inode' not described in '__clean_bdev_aliases'
>> fs/buffer.c:1702: warning: Excess function parameter 'inode' description in '__clean_bdev_aliases'
vim +1702 fs/buffer.c
^1da177e4c3f41 Linus Torvalds 2005-04-16 1680
29f3ad7d838036 Jan Kara 2016-11-04 1681 /**
666c7b98061c32 Yu Kuai 2024-02-22 1682 * __clean_bdev_aliases: clean a range of buffers in block device
666c7b98061c32 Yu Kuai 2024-02-22 1683 * @inode: Block device inode to clean buffers in
29f3ad7d838036 Jan Kara 2016-11-04 1684 * @block: Start of a range of blocks to clean
29f3ad7d838036 Jan Kara 2016-11-04 1685 * @len: Number of blocks to clean
29f3ad7d838036 Jan Kara 2016-11-04 1686 *
29f3ad7d838036 Jan Kara 2016-11-04 1687 * We are taking a range of blocks for data and we don't want writeback of any
29f3ad7d838036 Jan Kara 2016-11-04 1688 * buffer-cache aliases starting from return from this function and until the
29f3ad7d838036 Jan Kara 2016-11-04 1689 * moment when something will explicitly mark the buffer dirty (hopefully that
29f3ad7d838036 Jan Kara 2016-11-04 1690 * will not happen until we will free that block ;-) We don't even need to mark
29f3ad7d838036 Jan Kara 2016-11-04 1691 * it not-uptodate - nobody can expect anything from a newly allocated buffer
29f3ad7d838036 Jan Kara 2016-11-04 1692 * anyway. We used to use unmap_buffer() for such invalidation, but that was
29f3ad7d838036 Jan Kara 2016-11-04 1693 * wrong. We definitely don't want to mark the alias unmapped, for example - it
29f3ad7d838036 Jan Kara 2016-11-04 1694 * would confuse anyone who might pick it with bread() afterwards...
29f3ad7d838036 Jan Kara 2016-11-04 1695 *
29f3ad7d838036 Jan Kara 2016-11-04 1696 * Also.. Note that bforget() doesn't lock the buffer. So there can be
29f3ad7d838036 Jan Kara 2016-11-04 1697 * writeout I/O going on against recently-freed buffers. We don't wait on that
29f3ad7d838036 Jan Kara 2016-11-04 1698 * I/O in bforget() - it's more efficient to wait on the I/O only if we really
29f3ad7d838036 Jan Kara 2016-11-04 1699 * need to. That happens here.
29f3ad7d838036 Jan Kara 2016-11-04 1700 */
666c7b98061c32 Yu Kuai 2024-02-22 1701 void __clean_bdev_aliases(struct inode *bd_inode, sector_t block, sector_t len)
^1da177e4c3f41 Linus Torvalds 2005-04-16 @1702 {
29f3ad7d838036 Jan Kara 2016-11-04 1703 struct address_space *bd_mapping = bd_inode->i_mapping;
9e0b6f31bae664 Matthew Wilcox (Oracle 2022-06-04 1704) struct folio_batch fbatch;
4b04646caed544 Matthew Wilcox (Oracle 2023-11-09 1705) pgoff_t index = ((loff_t)block << bd_inode->i_blkbits) / PAGE_SIZE;
29f3ad7d838036 Jan Kara 2016-11-04 1706 pgoff_t end;
c10f778ddfc161 Jan Kara 2017-09-06 1707 int i, count;
29f3ad7d838036 Jan Kara 2016-11-04 1708 struct buffer_head *bh;
29f3ad7d838036 Jan Kara 2016-11-04 1709 struct buffer_head *head;
^1da177e4c3f41 Linus Torvalds 2005-04-16 1710
4b04646caed544 Matthew Wilcox (Oracle 2023-11-09 1711) end = ((loff_t)(block + len - 1) << bd_inode->i_blkbits) / PAGE_SIZE;
9e0b6f31bae664 Matthew Wilcox (Oracle 2022-06-04 1712) folio_batch_init(&fbatch);
9e0b6f31bae664 Matthew Wilcox (Oracle 2022-06-04 1713) while (filemap_get_folios(bd_mapping, &index, end, &fbatch)) {
9e0b6f31bae664 Matthew Wilcox (Oracle 2022-06-04 1714) count = folio_batch_count(&fbatch);
c10f778ddfc161 Jan Kara 2017-09-06 1715 for (i = 0; i < count; i++) {
9e0b6f31bae664 Matthew Wilcox (Oracle 2022-06-04 1716) struct folio *folio = fbatch.folios[i];
^1da177e4c3f41 Linus Torvalds 2005-04-16 1717
9e0b6f31bae664 Matthew Wilcox (Oracle 2022-06-04 1718) if (!folio_buffers(folio))
29f3ad7d838036 Jan Kara 2016-11-04 1719 continue;
29f3ad7d838036 Jan Kara 2016-11-04 1720 /*
600f111ef51dc2 Matthew Wilcox (Oracle 2023-11-17 1721) * We use folio lock instead of bd_mapping->i_private_lock
29f3ad7d838036 Jan Kara 2016-11-04 1722 * to pin buffers here since we can afford to sleep and
29f3ad7d838036 Jan Kara 2016-11-04 1723 * it scales better than a global spinlock lock.
29f3ad7d838036 Jan Kara 2016-11-04 1724 */
9e0b6f31bae664 Matthew Wilcox (Oracle 2022-06-04 1725) folio_lock(folio);
9e0b6f31bae664 Matthew Wilcox (Oracle 2022-06-04 1726) /* Recheck when the folio is locked which pins bhs */
9e0b6f31bae664 Matthew Wilcox (Oracle 2022-06-04 1727) head = folio_buffers(folio);
9e0b6f31bae664 Matthew Wilcox (Oracle 2022-06-04 1728) if (!head)
29f3ad7d838036 Jan Kara 2016-11-04 1729 goto unlock_page;
29f3ad7d838036 Jan Kara 2016-11-04 1730 bh = head;
29f3ad7d838036 Jan Kara 2016-11-04 1731 do {
6c006a9d94bfb5 Chandan Rajendra 2016-12-25 1732 if (!buffer_mapped(bh) || (bh->b_blocknr < block))
29f3ad7d838036 Jan Kara 2016-11-04 1733 goto next;
29f3ad7d838036 Jan Kara 2016-11-04 1734 if (bh->b_blocknr >= block + len)
29f3ad7d838036 Jan Kara 2016-11-04 1735 break;
29f3ad7d838036 Jan Kara 2016-11-04 1736 clear_buffer_dirty(bh);
29f3ad7d838036 Jan Kara 2016-11-04 1737 wait_on_buffer(bh);
29f3ad7d838036 Jan Kara 2016-11-04 1738 clear_buffer_req(bh);
29f3ad7d838036 Jan Kara 2016-11-04 1739 next:
29f3ad7d838036 Jan Kara 2016-11-04 1740 bh = bh->b_this_page;
29f3ad7d838036 Jan Kara 2016-11-04 1741 } while (bh != head);
29f3ad7d838036 Jan Kara 2016-11-04 1742 unlock_page:
9e0b6f31bae664 Matthew Wilcox (Oracle 2022-06-04 1743) folio_unlock(folio);
29f3ad7d838036 Jan Kara 2016-11-04 1744 }
9e0b6f31bae664 Matthew Wilcox (Oracle 2022-06-04 1745) folio_batch_release(&fbatch);
29f3ad7d838036 Jan Kara 2016-11-04 1746 cond_resched();
c10f778ddfc161 Jan Kara 2017-09-06 1747 /* End of range already reached? */
c10f778ddfc161 Jan Kara 2017-09-06 1748 if (index > end || !index)
c10f778ddfc161 Jan Kara 2017-09-06 1749 break;
^1da177e4c3f41 Linus Torvalds 2005-04-16 1750 }
^1da177e4c3f41 Linus Torvalds 2005-04-16 1751 }
666c7b98061c32 Yu Kuai 2024-02-22 1752 EXPORT_SYMBOL(__clean_bdev_aliases);
^1da177e4c3f41 Linus Torvalds 2005-04-16 1753
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
next prev parent reply other threads:[~2024-02-25 0:07 UTC|newest]
Thread overview: 98+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-02-22 12:45 [RFC v4 linux-next 00/19] fs & block: remove bdev->bd_inode Yu Kuai
2024-02-22 12:45 ` [RFC v4 linux-next 01/19] block: move two helpers into bdev.c Yu Kuai
2024-03-15 14:31 ` Jan Kara
2024-03-17 21:19 ` Christoph Hellwig
2024-02-22 12:45 ` [RFC v4 linux-next 02/19] block: remove sync_blockdev_nowait() Yu Kuai
2024-03-15 14:34 ` Jan Kara
2024-03-17 21:19 ` Christoph Hellwig
2024-02-22 12:45 ` [RFC v4 linux-next 03/19] block: remove sync_blockdev_range() Yu Kuai
2024-03-15 14:37 ` Jan Kara
2024-03-17 21:21 ` Christoph Hellwig
2024-02-22 12:45 ` [RFC v4 linux-next 04/19] block: prevent direct access of bd_inode Yu Kuai
2024-03-15 14:44 ` Jan Kara
2024-03-17 21:23 ` Christoph Hellwig
2024-03-22 5:44 ` Al Viro
2024-02-22 12:45 ` [RFC v4 linux-next 05/19] bcachefs: remove dead function bdev_sectors() Yu Kuai
2024-03-15 14:42 ` Jan Kara
2024-03-17 21:23 ` Christoph Hellwig
2024-02-22 12:45 ` [RFC v4 linux-next 06/19] cramfs: prevent direct access of bd_inode Yu Kuai
2024-03-15 14:44 ` Jan Kara
2024-03-17 21:23 ` Christoph Hellwig
2024-02-22 12:45 ` [RFC v4 linux-next 07/19] erofs: " Yu Kuai
2024-03-15 14:45 ` Jan Kara
2024-03-17 21:24 ` Christoph Hellwig
2024-03-18 2:39 ` Gao Xiang
2024-02-22 12:45 ` [RFC v4 linux-next 08/19] nilfs2: " Yu Kuai
2024-03-15 14:49 ` Jan Kara
2024-03-17 21:24 ` Christoph Hellwig
2024-02-22 12:45 ` [RFC v4 linux-next 09/19] gfs2: " Yu Kuai
2024-03-15 14:54 ` Jan Kara
2024-03-17 21:24 ` Christoph Hellwig
2024-02-22 12:45 ` [RFC v4 linux-next 10/19] s390/dasd: use bdev api in dasd_format() Yu Kuai
2024-03-15 14:55 ` Jan Kara
2024-03-17 21:25 ` Christoph Hellwig
2024-02-22 12:45 ` [RFC v4 linux-next 11/19] btrfs: prevent direct access of bd_inode Yu Kuai
2024-03-15 15:09 ` Jan Kara
2024-03-17 21:25 ` Christoph Hellwig
2024-02-22 12:45 ` [RFC v4 linux-next 12/19] ext4: remove block_device_ejected() Yu Kuai
2024-02-22 12:45 ` [RFC v4 linux-next 13/19] ext4: prevent direct access of bd_inode Yu Kuai
2024-03-15 14:58 ` Jan Kara
2024-03-17 21:25 ` Christoph Hellwig
2024-02-22 12:45 ` [RFC v4 linux-next 14/19] jbd2: " Yu Kuai
2024-03-15 15:06 ` Jan Kara
2024-03-17 21:26 ` Christoph Hellwig
2024-03-18 1:10 ` Yu Kuai
2024-02-22 12:45 ` [RFC v4 linux-next 15/19] bcache: " Yu Kuai
2024-03-15 15:11 ` Jan Kara
2024-03-17 21:34 ` Christoph Hellwig
2024-02-22 12:45 ` [RFC v4 linux-next 16/19] block2mtd: " Yu Kuai
2024-03-15 15:12 ` Jan Kara
2024-03-17 21:36 ` Christoph Hellwig
2024-02-22 12:45 ` [RFC v4 linux-next 17/19] dm-vdo: " Yu Kuai
2024-02-28 13:41 ` Christoph Hellwig
2024-03-18 9:11 ` Jan Kara
2024-03-18 9:19 ` Jan Kara
2024-03-18 13:38 ` Yu Kuai
2024-03-19 2:00 ` Matthew Sakai
2024-02-22 12:45 ` [RFC v4 linux-next 18/19] scsi: factor out a helper bdev_read_folio() from scsi_bios_ptable() Yu Kuai
2024-03-17 21:36 ` Christoph Hellwig
2024-03-18 1:12 ` Yu Kuai
2024-03-18 9:22 ` Jan Kara
2024-02-22 12:45 ` [RFC v4 linux-next 19/19] fs & block: remove bdev->bd_inode Yu Kuai
2024-02-25 0:06 ` kernel test robot [this message]
2024-03-17 21:38 ` Christoph Hellwig
2024-03-18 1:26 ` Yu Kuai
2024-03-18 1:32 ` Christoph Hellwig
2024-03-18 1:51 ` Yu Kuai
2024-03-18 7:19 ` Yu Kuai
2024-03-18 10:07 ` Christian Brauner
2024-03-18 10:29 ` Christian Brauner
2024-03-18 10:46 ` Christian Brauner
2024-03-18 11:57 ` Yu Kuai
2024-03-18 23:35 ` Christoph Hellwig
2024-03-18 23:22 ` Christoph Hellwig
2024-03-19 8:26 ` Yu Kuai
2024-03-21 11:27 ` Jan Kara
2024-03-21 12:15 ` Yu Kuai
2024-03-22 6:37 ` Al Viro
2024-03-22 6:39 ` Al Viro
2024-03-22 6:52 ` Yu Kuai
2024-03-22 12:57 ` Jan Kara
2024-03-22 13:57 ` Christian Brauner
2024-03-22 15:43 ` Al Viro
2024-03-22 16:16 ` Al Viro
2024-03-22 6:33 ` Al Viro
2024-03-22 7:09 ` Yu Kuai
2024-03-22 16:01 ` Al Viro
2024-03-22 13:10 ` Jan Kara
2024-03-22 14:57 ` Al Viro
2024-03-25 1:06 ` Christoph Hellwig
2024-02-28 13:42 ` [RFC v4 linux-next 00/19] " Christoph Hellwig
2024-03-15 12:08 ` Yu Kuai
2024-03-15 13:54 ` Christian Brauner
2024-03-16 2:49 ` Yu Kuai
2024-03-18 9:39 ` Christian Brauner
2024-03-19 1:18 ` Yu Kuai
2024-03-19 1:43 ` Yu Kuai
2024-03-19 2:13 ` Matthew Sakai
2024-03-19 2:27 ` Yu Kuai
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=202402250747.57bivGGZ-lkp@intel.com \
--to=lkp@intel.com \
--cc=oe-kbuild-all@lists.linux.dev \
--cc=yukuai1@huaweicloud.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.