All of lore.kernel.org
 help / color / mirror / Atom feed
From: kernel test robot <lkp@intel.com>
To: kbuild@lists.01.org
Subject: [hch-block:bio_alloc-cleanup 5/13] drivers/block/drbd/drbd_receiver.c:1725:1: sparse: sparse: unused label 'fail'
Date: Wed, 12 Jan 2022 20:33:41 +0800	[thread overview]
Message-ID: <202201122005.kVtxiFv4-lkp@intel.com> (raw)

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

CC: kbuild-all(a)lists.01.org
TO: Christoph Hellwig <hch@lst.de>

tree:   git://git.infradead.org/users/hch/block.git bio_alloc-cleanup
head:   152c964c974a6e3bf0dd15a8d100c075087d5186
commit: 192922838a1e77811c20c6b8973983a5939edee2 [5/13] drbd: bio_alloc can't fail if it is allow to sleep
:::::: branch date: 2 hours ago
:::::: commit date: 3 hours ago
config: mips-randconfig-s032-20220112 (https://download.01.org/0day-ci/archive/20220112/202201122005.kVtxiFv4-lkp(a)intel.com/config)
compiler: mips64-linux-gcc (GCC) 11.2.0
reproduce:
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # apt-get install sparse
        # sparse version: v0.6.4-dirty
        git remote add hch-block git://git.infradead.org/users/hch/block.git
        git fetch --no-tags hch-block bio_alloc-cleanup
        git checkout 192922838a1e77811c20c6b8973983a5939edee2
        # save the config file to linux build tree
        mkdir build_dir
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' O=build_dir ARCH=mips SHELL=/bin/bash drivers/block/drbd/

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


sparse warnings: (new ones prefixed by >>)
   command-line: note: in included file:
   builtin:1:9: sparse: sparse: preprocessor token __ATOMIC_ACQUIRE redefined
   builtin:0:0: sparse: this was the original definition
   builtin:1:9: sparse: sparse: preprocessor token __ATOMIC_SEQ_CST redefined
   builtin:0:0: sparse: this was the original definition
   builtin:1:9: sparse: sparse: preprocessor token __ATOMIC_ACQ_REL redefined
   builtin:0:0: sparse: this was the original definition
   builtin:1:9: sparse: sparse: preprocessor token __ATOMIC_RELEASE redefined
   builtin:0:0: sparse: this was the original definition
>> drivers/block/drbd/drbd_receiver.c:1725:1: sparse: sparse: unused label 'fail'
   drivers/block/drbd/drbd_receiver.c:5350:27: sparse: sparse: cast to restricted __be32
   drivers/block/drbd/drbd_receiver.c:5351:27: sparse: sparse: cast to restricted __be32
   drivers/block/drbd/drbd_receiver.c:5360:54: sparse: sparse: cast to restricted __be32
   drivers/block/drbd/drbd_receiver.c:5417:14: sparse: sparse: incompatible types in comparison expression (different address spaces):
   drivers/block/drbd/drbd_receiver.c:5417:14: sparse:    struct net_conf [noderef] __rcu *
   drivers/block/drbd/drbd_receiver.c:5417:14: sparse:    struct net_conf *
   drivers/block/drbd/drbd_receiver.c:273:14: sparse: sparse: incompatible types in comparison expression (different address spaces):
   drivers/block/drbd/drbd_receiver.c:273:14: sparse:    struct net_conf [noderef] __rcu *
   drivers/block/drbd/drbd_receiver.c:273:14: sparse:    struct net_conf *
   drivers/block/drbd/drbd_receiver.c:529:29: sparse: sparse: incompatible types in comparison expression (different address spaces):
   drivers/block/drbd/drbd_receiver.c:529:29: sparse:    struct net_conf [noderef] __rcu *
   drivers/block/drbd/drbd_receiver.c:529:29: sparse:    struct net_conf *
   drivers/block/drbd/drbd_receiver.c:601:14: sparse: sparse: incompatible types in comparison expression (different address spaces):
   drivers/block/drbd/drbd_receiver.c:601:14: sparse:    struct net_conf [noderef] __rcu *
   drivers/block/drbd/drbd_receiver.c:601:14: sparse:    struct net_conf *
   drivers/block/drbd/drbd_receiver.c:705:14: sparse: sparse: incompatible types in comparison expression (different address spaces):
   drivers/block/drbd/drbd_receiver.c:705:14: sparse:    struct net_conf [noderef] __rcu *
   drivers/block/drbd/drbd_receiver.c:705:14: sparse:    struct net_conf *
   drivers/block/drbd/drbd_receiver.c:774:14: sparse: sparse: incompatible types in comparison expression (different address spaces):
   drivers/block/drbd/drbd_receiver.c:774:14: sparse:    struct net_conf [noderef] __rcu *
   drivers/block/drbd/drbd_receiver.c:774:14: sparse:    struct net_conf *
   drivers/block/drbd/drbd_receiver.c:1167:27: sparse: sparse: cast to restricted __be16
   drivers/block/drbd/drbd_receiver.c:1168:27: sparse: sparse: cast to restricted __be16
   drivers/block/drbd/drbd_receiver.c:1169:28: sparse: sparse: cast to restricted __be32
   drivers/block/drbd/drbd_receiver.c:1173:27: sparse: sparse: cast to restricted __be16
   drivers/block/drbd/drbd_receiver.c:1174:28: sparse: sparse: cast to restricted __be32
   drivers/block/drbd/drbd_receiver.c:1179:27: sparse: sparse: cast to restricted __be16
   drivers/block/drbd/drbd_receiver.c:1180:28: sparse: sparse: cast to restricted __be16
   drivers/block/drbd/drbd_receiver.c:822:14: sparse: sparse: incompatible types in comparison expression (different address spaces):
   drivers/block/drbd/drbd_receiver.c:822:14: sparse:    struct net_conf [noderef] __rcu *
   drivers/block/drbd/drbd_receiver.c:822:14: sparse:    struct net_conf *
   drivers/block/drbd/drbd_receiver.c:877:14: sparse: sparse: incompatible types in comparison expression (different address spaces):
   drivers/block/drbd/drbd_receiver.c:877:14: sparse:    struct net_conf [noderef] __rcu *
   drivers/block/drbd/drbd_receiver.c:877:14: sparse:    struct net_conf *
   drivers/block/drbd/drbd_receiver.c:1042:14: sparse: sparse: incompatible types in comparison expression (different address spaces):
   drivers/block/drbd/drbd_receiver.c:1042:14: sparse:    struct net_conf [noderef] __rcu *
   drivers/block/drbd/drbd_receiver.c:1042:14: sparse:    struct net_conf *
   drivers/block/drbd/drbd_receiver.c:1433:14: sparse: sparse: incompatible types in comparison expression (different address spaces):
   drivers/block/drbd/drbd_receiver.c:1433:14: sparse:    struct disk_conf [noderef] __rcu *
   drivers/block/drbd/drbd_receiver.c:1433:14: sparse:    struct disk_conf *
   drivers/block/drbd/drbd_receiver.c:1587:14: sparse: sparse: incompatible types in comparison expression (different address spaces):
   drivers/block/drbd/drbd_receiver.c:1587:14: sparse:    struct disk_conf [noderef] __rcu *
   drivers/block/drbd/drbd_receiver.c:1587:14: sparse:    struct disk_conf *
   drivers/block/drbd/drbd_receiver.c:1888:22: sparse: sparse: cast to restricted __be32
   drivers/block/drbd/drbd_receiver.c:1892:22: sparse: sparse: cast to restricted __be32
   drivers/block/drbd/drbd_receiver.c:1904:22: sparse: sparse: cast to restricted __be32
   drivers/block/drbd/drbd_receiver.c:2152:18: sparse: sparse: cast to restricted __be64
   drivers/block/drbd/drbd_receiver.c:2186:18: sparse: sparse: cast to restricted __be64
   drivers/block/drbd/drbd_receiver.c:2400:22: sparse: sparse: incompatible types in comparison expression (different address spaces):
   drivers/block/drbd/drbd_receiver.c:2400:22: sparse:    struct net_conf [noderef] __rcu *
   drivers/block/drbd/drbd_receiver.c:2400:22: sparse:    struct net_conf *
   drivers/block/drbd/drbd_receiver.c:2410:27: sparse: sparse: incompatible types in comparison expression (different address spaces):
   drivers/block/drbd/drbd_receiver.c:2410:27: sparse:    struct net_conf [noderef] __rcu *
   drivers/block/drbd/drbd_receiver.c:2410:27: sparse:    struct net_conf *
   drivers/block/drbd/drbd_receiver.c:2589:24: sparse: sparse: cast to restricted __be32
   drivers/block/drbd/drbd_receiver.c:2617:18: sparse: sparse: cast to restricted __be64
   drivers/block/drbd/drbd_receiver.c:2628:20: sparse: sparse: cast to restricted __be32
   drivers/block/drbd/drbd_receiver.c:2661:14: sparse: sparse: incompatible types in comparison expression (different address spaces):
   drivers/block/drbd/drbd_receiver.c:2661:14: sparse:    struct net_conf [noderef] __rcu *
   drivers/block/drbd/drbd_receiver.c:2661:14: sparse:    struct net_conf *
   drivers/block/drbd/drbd_receiver.c:2793:22: sparse: sparse: incompatible types in comparison expression (different address spaces):
   drivers/block/drbd/drbd_receiver.c:2793:22: sparse:    struct disk_conf [noderef] __rcu *
   drivers/block/drbd/drbd_receiver.c:2793:22: sparse:    struct disk_conf *
   drivers/block/drbd/drbd_receiver.c:2849:18: sparse: sparse: cast to restricted __be64
   drivers/block/drbd/drbd_receiver.c:2850:18: sparse: sparse: cast to restricted __be32
   drivers/block/drbd/drbd_receiver.c:3061:23: sparse: sparse: incompatible types in comparison expression (different address spaces):
   drivers/block/drbd/drbd_receiver.c:3061:23: sparse:    struct net_conf [noderef] __rcu *
   drivers/block/drbd/drbd_receiver.c:3061:23: sparse:    struct net_conf *
   drivers/block/drbd/drbd_receiver.c:3137:23: sparse: sparse: incompatible types in comparison expression (different address spaces):
   drivers/block/drbd/drbd_receiver.c:3137:23: sparse:    struct net_conf [noderef] __rcu *
   drivers/block/drbd/drbd_receiver.c:3137:23: sparse:    struct net_conf *
   drivers/block/drbd/drbd_receiver.c:3194:23: sparse: sparse: incompatible types in comparison expression (different address spaces):
   drivers/block/drbd/drbd_receiver.c:3194:23: sparse:    struct net_conf [noderef] __rcu *
   drivers/block/drbd/drbd_receiver.c:3194:23: sparse:    struct net_conf *
   drivers/block/drbd/drbd_receiver.c:3540:14: sparse: sparse: incompatible types in comparison expression (different address spaces):
   drivers/block/drbd/drbd_receiver.c:3540:14: sparse:    struct net_conf [noderef] __rcu *
   drivers/block/drbd/drbd_receiver.c:3540:14: sparse:    struct net_conf *
   drivers/block/drbd/drbd_receiver.c:3672:27: sparse: sparse: cast to restricted __be32
   drivers/block/drbd/drbd_receiver.c:3673:27: sparse: sparse: cast to restricted __be32
   drivers/block/drbd/drbd_receiver.c:3674:27: sparse: sparse: cast to restricted __be32
   drivers/block/drbd/drbd_receiver.c:3675:27: sparse: sparse: cast to restricted __be32
   drivers/block/drbd/drbd_receiver.c:3676:27: sparse: sparse: cast to restricted __be32
   drivers/block/drbd/drbd_receiver.c:3677:27: sparse: sparse: cast to restricted __be32
   drivers/block/drbd/drbd_receiver.c:3698:22: sparse: sparse: incompatible types in comparison expression (different address spaces):
   drivers/block/drbd/drbd_receiver.c:3698:22: sparse:    struct net_conf [noderef] __rcu *
   drivers/block/drbd/drbd_receiver.c:3698:22: sparse:    struct net_conf *
   drivers/block/drbd/drbd_receiver.c:3782:9: sparse: sparse: incompatible types in comparison expression (different address spaces):
   drivers/block/drbd/drbd_receiver.c:3782:9: sparse:    struct net_conf [noderef] __rcu *
   drivers/block/drbd/drbd_receiver.c:3782:9: sparse:    struct net_conf *
   drivers/block/drbd/drbd_receiver.c:3940:46: sparse: sparse: cast to restricted __be32
   drivers/block/drbd/drbd_receiver.c:3999:55: sparse: sparse: cast to restricted __be32
   drivers/block/drbd/drbd_receiver.c:4000:57: sparse: sparse: cast to restricted __be32
   drivers/block/drbd/drbd_receiver.c:4001:56: sparse: sparse: cast to restricted __be32
   drivers/block/drbd/drbd_receiver.c:4002:53: sparse: sparse: cast to restricted __be32
   drivers/block/drbd/drbd_receiver.c:4036:25: sparse: sparse: incompatible types in comparison expression (different address spaces):
   drivers/block/drbd/drbd_receiver.c:4036:25: sparse:    struct net_conf [noderef] __rcu *
   drivers/block/drbd/drbd_receiver.c:4036:25: sparse:    struct net_conf *
   drivers/block/drbd/drbd_receiver.c:4041:17: sparse: sparse: incompatible types in comparison expression (different address spaces):
   drivers/block/drbd/drbd_receiver.c:4041:17: sparse:    struct disk_conf [noderef] __rcu *
   drivers/block/drbd/drbd_receiver.c:4041:17: sparse:    struct disk_conf *

vim +/fail +1725 drivers/block/drbd/drbd_receiver.c

9104d31a759fbad Lars Ellenberg      2016-06-14  1618  
9104d31a759fbad Lars Ellenberg      2016-06-14  1619  
6ec2a0f2bc07d42 Lee Jones           2021-03-12  1620  /*
fbe29dec9862236 Andreas Gruenbacher 2011-02-17  1621   * drbd_submit_peer_request()
b30ab7913b0a7b1 Andreas Gruenbacher 2011-07-03  1622   * @device:	DRBD device.
db830c464b69e26 Andreas Gruenbacher 2011-02-04  1623   * @peer_req:	peer request
10f6d9926cd17af Lars Ellenberg      2011-01-24  1624   *
10f6d9926cd17af Lars Ellenberg      2011-01-24  1625   * May spread the pages to multiple bios,
10f6d9926cd17af Lars Ellenberg      2011-01-24  1626   * depending on bio_add_page restrictions.
10f6d9926cd17af Lars Ellenberg      2011-01-24  1627   *
10f6d9926cd17af Lars Ellenberg      2011-01-24  1628   * Returns 0 if all bios have been submitted,
10f6d9926cd17af Lars Ellenberg      2011-01-24  1629   * -ENOMEM if we could not allocate enough bios,
10f6d9926cd17af Lars Ellenberg      2011-01-24  1630   * -ENOSPC (any better suggestion?) if we have not been able to bio_add_page a
10f6d9926cd17af Lars Ellenberg      2011-01-24  1631   *  single page to an empty bio (which should never happen and likely indicates
10f6d9926cd17af Lars Ellenberg      2011-01-24  1632   *  that the lower level IO stack is in some way broken). This has been observed
10f6d9926cd17af Lars Ellenberg      2011-01-24  1633   *  on certain Xen deployments.
45bb912bd5ea4d2 Lars Ellenberg      2010-05-14  1634   */
45bb912bd5ea4d2 Lars Ellenberg      2010-05-14  1635  /* TODO allocate from our own bio_set. */
b30ab7913b0a7b1 Andreas Gruenbacher 2011-07-03  1636  int drbd_submit_peer_request(struct drbd_device *device,
fbe29dec9862236 Andreas Gruenbacher 2011-02-17  1637  			     struct drbd_peer_request *peer_req,
bb3cc85e16431bb Mike Christie       2016-06-05  1638  			     const unsigned op, const unsigned op_flags,
bb3cc85e16431bb Mike Christie       2016-06-05  1639  			     const int fault_type)
45bb912bd5ea4d2 Lars Ellenberg      2010-05-14  1640  {
45bb912bd5ea4d2 Lars Ellenberg      2010-05-14  1641  	struct bio *bios = NULL;
45bb912bd5ea4d2 Lars Ellenberg      2010-05-14  1642  	struct bio *bio;
db830c464b69e26 Andreas Gruenbacher 2011-02-04  1643  	struct page *page = peer_req->pages;
db830c464b69e26 Andreas Gruenbacher 2011-02-04  1644  	sector_t sector = peer_req->i.sector;
11f8b2b69d32d43 Andreas Gruenbacher 2014-09-11  1645  	unsigned data_size = peer_req->i.size;
45bb912bd5ea4d2 Lars Ellenberg      2010-05-14  1646  	unsigned n_bios = 0;
11f8b2b69d32d43 Andreas Gruenbacher 2014-09-11  1647  	unsigned nr_pages = (data_size + PAGE_SIZE -1) >> PAGE_SHIFT;
10f6d9926cd17af Lars Ellenberg      2011-01-24  1648  	int err = -ENOMEM;
45bb912bd5ea4d2 Lars Ellenberg      2010-05-14  1649  
dd4f699da674010 Lars Ellenberg      2016-06-14  1650  	/* TRIM/DISCARD: for now, always use the helper function
dd4f699da674010 Lars Ellenberg      2016-06-14  1651  	 * blkdev_issue_zeroout(..., discard=true).
dd4f699da674010 Lars Ellenberg      2016-06-14  1652  	 * It's synchronous, but it does the right thing wrt. bio splitting.
dd4f699da674010 Lars Ellenberg      2016-06-14  1653  	 * Correctness first, performance later.  Next step is to code an
dd4f699da674010 Lars Ellenberg      2016-06-14  1654  	 * asynchronous variant of the same.
dd4f699da674010 Lars Ellenberg      2016-06-14  1655  	 */
f31e583aa2c2089 Lars Ellenberg      2018-12-20  1656  	if (peer_req->flags & (EE_TRIM|EE_WRITE_SAME|EE_ZEROOUT)) {
a0fb3c47a1aae5d Lars Ellenberg      2014-04-28  1657  		/* wait for all pending IO completions, before we start
a0fb3c47a1aae5d Lars Ellenberg      2014-04-28  1658  		 * zeroing things out. */
5dd2ca1912714a0 Andreas Gruenbacher 2014-08-11  1659  		conn_wait_active_ee_empty(peer_req->peer_device->connection);
45d2933c921c51d Lars Ellenberg      2014-04-23  1660  		/* add it to the active list now,
45d2933c921c51d Lars Ellenberg      2014-04-23  1661  		 * so we can find it to present it in debugfs */
21ae5d7f95aa1a6 Lars Ellenberg      2014-05-05  1662  		peer_req->submit_jif = jiffies;
21ae5d7f95aa1a6 Lars Ellenberg      2014-05-05  1663  		peer_req->flags |= EE_SUBMITTED;
700ca8c04a0f440 Philipp Reisner     2016-06-14  1664  
700ca8c04a0f440 Philipp Reisner     2016-06-14  1665  		/* If this was a resync request from receive_rs_deallocated(),
700ca8c04a0f440 Philipp Reisner     2016-06-14  1666  		 * it is already on the sync_ee list */
700ca8c04a0f440 Philipp Reisner     2016-06-14  1667  		if (list_empty(&peer_req->w.list)) {
45d2933c921c51d Lars Ellenberg      2014-04-23  1668  			spin_lock_irq(&device->resource->req_lock);
45d2933c921c51d Lars Ellenberg      2014-04-23  1669  			list_add_tail(&peer_req->w.list, &device->active_ee);
45d2933c921c51d Lars Ellenberg      2014-04-23  1670  			spin_unlock_irq(&device->resource->req_lock);
700ca8c04a0f440 Philipp Reisner     2016-06-14  1671  		}
700ca8c04a0f440 Philipp Reisner     2016-06-14  1672  
f31e583aa2c2089 Lars Ellenberg      2018-12-20  1673  		if (peer_req->flags & (EE_TRIM|EE_ZEROOUT))
f31e583aa2c2089 Lars Ellenberg      2018-12-20  1674  			drbd_issue_peer_discard_or_zero_out(device, peer_req);
9104d31a759fbad Lars Ellenberg      2016-06-14  1675  		else /* EE_WRITE_SAME */
9104d31a759fbad Lars Ellenberg      2016-06-14  1676  			drbd_issue_peer_wsame(device, peer_req);
a0fb3c47a1aae5d Lars Ellenberg      2014-04-28  1677  		return 0;
a0fb3c47a1aae5d Lars Ellenberg      2014-04-28  1678  	}
a0fb3c47a1aae5d Lars Ellenberg      2014-04-28  1679  
45bb912bd5ea4d2 Lars Ellenberg      2010-05-14  1680  	/* In most cases, we will only need one bio.  But in case the lower
45bb912bd5ea4d2 Lars Ellenberg      2010-05-14  1681  	 * level restrictions happen to be different at this offset on this
45bb912bd5ea4d2 Lars Ellenberg      2010-05-14  1682  	 * side than those of the sending peer, we may need to submit the
9476f39d66041ca Lars Ellenberg      2011-02-23  1683  	 * request in more than one bio.
9476f39d66041ca Lars Ellenberg      2011-02-23  1684  	 *
9476f39d66041ca Lars Ellenberg      2011-02-23  1685  	 * Plain bio_alloc is good enough here, this is no DRBD internally
9476f39d66041ca Lars Ellenberg      2011-02-23  1686  	 * generated bio, but a bio allocated on behalf of the peer.
9476f39d66041ca Lars Ellenberg      2011-02-23  1687  	 */
45bb912bd5ea4d2 Lars Ellenberg      2010-05-14  1688  next_bio:
45bb912bd5ea4d2 Lars Ellenberg      2010-05-14  1689  	bio = bio_alloc(GFP_NOIO, nr_pages);
db830c464b69e26 Andreas Gruenbacher 2011-02-04  1690  	/* > peer_req->i.sector, unless this is the first bio */
4f024f3797c43cb Kent Overstreet     2013-10-11  1691  	bio->bi_iter.bi_sector = sector;
74d46992e0d9dee Christoph Hellwig   2017-08-23  1692  	bio_set_dev(bio, device->ldev->backing_bdev);
bb3cc85e16431bb Mike Christie       2016-06-05  1693  	bio_set_op_attrs(bio, op, op_flags);
db830c464b69e26 Andreas Gruenbacher 2011-02-04  1694  	bio->bi_private = peer_req;
fcefa62e4c26e70 Andreas Gruenbacher 2011-02-17  1695  	bio->bi_end_io = drbd_peer_request_endio;
45bb912bd5ea4d2 Lars Ellenberg      2010-05-14  1696  
45bb912bd5ea4d2 Lars Ellenberg      2010-05-14  1697  	bio->bi_next = bios;
45bb912bd5ea4d2 Lars Ellenberg      2010-05-14  1698  	bios = bio;
45bb912bd5ea4d2 Lars Ellenberg      2010-05-14  1699  	++n_bios;
45bb912bd5ea4d2 Lars Ellenberg      2010-05-14  1700  
45bb912bd5ea4d2 Lars Ellenberg      2010-05-14  1701  	page_chain_for_each(page) {
11f8b2b69d32d43 Andreas Gruenbacher 2014-09-11  1702  		unsigned len = min_t(unsigned, data_size, PAGE_SIZE);
06efffda51d9785 Ming Lei            2016-11-11  1703  		if (!bio_add_page(bio, page, len, 0))
45bb912bd5ea4d2 Lars Ellenberg      2010-05-14  1704  			goto next_bio;
11f8b2b69d32d43 Andreas Gruenbacher 2014-09-11  1705  		data_size -= len;
45bb912bd5ea4d2 Lars Ellenberg      2010-05-14  1706  		sector += len >> 9;
45bb912bd5ea4d2 Lars Ellenberg      2010-05-14  1707  		--nr_pages;
45bb912bd5ea4d2 Lars Ellenberg      2010-05-14  1708  	}
11f8b2b69d32d43 Andreas Gruenbacher 2014-09-11  1709  	D_ASSERT(device, data_size == 0);
a0fb3c47a1aae5d Lars Ellenberg      2014-04-28  1710  	D_ASSERT(device, page == NULL);
45bb912bd5ea4d2 Lars Ellenberg      2010-05-14  1711  
db830c464b69e26 Andreas Gruenbacher 2011-02-04  1712  	atomic_set(&peer_req->pending_bios, n_bios);
21ae5d7f95aa1a6 Lars Ellenberg      2014-05-05  1713  	/* for debugfs: update timestamp, mark as submitted */
21ae5d7f95aa1a6 Lars Ellenberg      2014-05-05  1714  	peer_req->submit_jif = jiffies;
21ae5d7f95aa1a6 Lars Ellenberg      2014-05-05  1715  	peer_req->flags |= EE_SUBMITTED;
45bb912bd5ea4d2 Lars Ellenberg      2010-05-14  1716  	do {
45bb912bd5ea4d2 Lars Ellenberg      2010-05-14  1717  		bio = bios;
45bb912bd5ea4d2 Lars Ellenberg      2010-05-14  1718  		bios = bios->bi_next;
45bb912bd5ea4d2 Lars Ellenberg      2010-05-14  1719  		bio->bi_next = NULL;
45bb912bd5ea4d2 Lars Ellenberg      2010-05-14  1720  
ed00aabd5eb9fb4 Christoph Hellwig   2020-07-01  1721  		drbd_submit_bio_noacct(device, fault_type, bio);
45bb912bd5ea4d2 Lars Ellenberg      2010-05-14  1722  	} while (bios);
45bb912bd5ea4d2 Lars Ellenberg      2010-05-14  1723  	return 0;
45bb912bd5ea4d2 Lars Ellenberg      2010-05-14  1724  
45bb912bd5ea4d2 Lars Ellenberg      2010-05-14 @1725  fail:
45bb912bd5ea4d2 Lars Ellenberg      2010-05-14  1726  	while (bios) {
45bb912bd5ea4d2 Lars Ellenberg      2010-05-14  1727  		bio = bios;
45bb912bd5ea4d2 Lars Ellenberg      2010-05-14  1728  		bios = bios->bi_next;
45bb912bd5ea4d2 Lars Ellenberg      2010-05-14  1729  		bio_put(bio);
45bb912bd5ea4d2 Lars Ellenberg      2010-05-14  1730  	}
10f6d9926cd17af Lars Ellenberg      2011-01-24  1731  	return err;
45bb912bd5ea4d2 Lars Ellenberg      2010-05-14  1732  }
45bb912bd5ea4d2 Lars Ellenberg      2010-05-14  1733  

:::::: The code at line 1725 was first introduced by commit
:::::: 45bb912bd5ea4d2b3a270a93cbdf767a0e2df6f5 drbd: Allow drbd_epoch_entries to use multiple bios. This should allow for better performance if the lower level IO stack of the peers differs in limits exposed either via the queue, or via some merge_bvec_fn.

:::::: TO: Lars Ellenberg <lars.ellenberg@linbit.com>
:::::: CC: Philipp Reisner <philipp.reisner@linbit.com>

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

                 reply	other threads:[~2022-01-12 12:33 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

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=202201122005.kVtxiFv4-lkp@intel.com \
    --to=lkp@intel.com \
    --cc=kbuild@lists.01.org \
    /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.