CEPH filesystem development
 help / color / mirror / Atom feed
From: kernel test robot <lkp@intel.com>
To: Alex Markuze <amarkuze@redhat.com>
Cc: oe-kbuild-all@lists.linux.dev, ceph-devel@vger.kernel.org,
	Ilya Dryomov <idryomov@gmail.com>, Xiubo Li <xiubo.li@clyso.com>
Subject: [ceph-client:testing 33/47] fs/ceph/addr.c:1808:17: sparse: sparse: cast from restricted xa_mark_t
Date: Sat, 31 Oct 2026 22:33:56 +0100	[thread overview]
Message-ID: <202610312225.fbDlNNNX-lkp@intel.com> (raw)

tree:   https://github.com/ceph/ceph-client.git testing
head:   3f007b9f327745c94aec312a28973b28f6a51fc4
commit: de9e07ca1957ab81442a4bbc85378199cd186c37 [33/47] ceph: convert VFS data I/O paths to BLOG logging
config: powerpc64-randconfig-r2306-20261031 (https://download.01.org/0day-ci/archive/20261031/202610312225.fbDlNNNX-lkp@intel.com/config)
compiler: clang version 17.0.6 (https://github.com/llvm/llvm-project 6009708b4367171ccdbf4b5905cb6a803753fe18)
sparse: v0.6.5-rc1-21-g84ec0658
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20261031/202610312225.fbDlNNNX-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/202610312225.fbDlNNNX-lkp@intel.com/

sparse warnings: (new ones prefixed by >>)
>> fs/ceph/addr.c:1808:17: sparse: sparse: cast from restricted xa_mark_t
>> fs/ceph/addr.c:1808:17: sparse: sparse: cast from restricted xa_mark_t
>> fs/ceph/addr.c:1808:17: sparse: sparse: cast from restricted xa_mark_t
>> fs/ceph/addr.c:1808:17: sparse: sparse: cast from restricted xa_mark_t
>> fs/ceph/addr.c:2214:17: sparse: sparse: cast from restricted vm_fault_t
>> fs/ceph/addr.c:2214:17: sparse: sparse: cast from restricted vm_fault_t
>> fs/ceph/addr.c:2214:17: sparse: sparse: cast from restricted vm_fault_t
>> fs/ceph/addr.c:2214:17: sparse: sparse: cast from restricted vm_fault_t
   fs/ceph/addr.c:2257:17: sparse: sparse: cast from restricted vm_fault_t
   fs/ceph/addr.c:2257:17: sparse: sparse: cast from restricted vm_fault_t
   fs/ceph/addr.c:2257:17: sparse: sparse: cast from restricted vm_fault_t
   fs/ceph/addr.c:2257:17: sparse: sparse: cast from restricted vm_fault_t
   fs/ceph/addr.c:2425:9: sparse: sparse: cast from restricted vm_fault_t
   fs/ceph/addr.c:2425:9: sparse: sparse: cast from restricted vm_fault_t
   fs/ceph/addr.c:2425:9: sparse: sparse: cast from restricted vm_fault_t
   fs/ceph/addr.c:2425:9: sparse: sparse: cast from restricted vm_fault_t
>> fs/ceph/addr.c:123:9: sparse: sparse: non size-preserving integer to pointer cast
>> fs/ceph/addr.c:123:9: sparse: sparse: non size-preserving integer to pointer cast
>> fs/ceph/addr.c:123:9: sparse: sparse: non size-preserving integer to pointer cast
>> fs/ceph/addr.c:123:9: sparse: sparse: non size-preserving integer to pointer cast
>> fs/ceph/addr.c:123:9: sparse: sparse: non size-preserving integer to pointer cast
   fs/ceph/addr.c:241:9: sparse: sparse: non size-preserving integer to pointer cast
   fs/ceph/addr.c:459:25: sparse: sparse: non size-preserving integer to pointer cast
   fs/ceph/addr.c:502:9: sparse: sparse: non size-preserving integer to pointer cast
   fs/ceph/addr.c:713:17: sparse: sparse: non size-preserving integer to pointer cast
   fs/ceph/addr.c:746:17: sparse: sparse: non size-preserving integer to pointer cast
   fs/ceph/addr.c:941:17: sparse: sparse: non size-preserving integer to pointer cast
   fs/ceph/addr.c:989:9: sparse: sparse: non size-preserving integer to pointer cast
   fs/ceph/addr.c:1055:17: sparse: sparse: non size-preserving integer to pointer cast
   fs/ceph/addr.c:1407:17: sparse: sparse: non size-preserving integer to pointer cast
   fs/ceph/addr.c:1407:17: sparse: sparse: non size-preserving integer to pointer cast
   fs/ceph/addr.c:1407:17: sparse: sparse: non size-preserving integer to pointer cast
   fs/ceph/addr.c:1186:9: sparse: sparse: non size-preserving integer to pointer cast
   fs/ceph/addr.c:1808:17: sparse: sparse: non size-preserving integer to pointer cast
   fs/ceph/addr.c:1808:17: sparse: sparse: non size-preserving integer to pointer cast
   fs/ceph/addr.c:1856:17: sparse: sparse: non size-preserving integer to pointer cast
   fs/ceph/addr.c:1885:9: sparse: sparse: non size-preserving integer to pointer cast
   fs/ceph/addr.c:2043:9: sparse: sparse: non size-preserving integer to pointer cast
   fs/ceph/addr.c:2043:9: sparse: sparse: non size-preserving integer to pointer cast
   fs/ceph/addr.c:2043:9: sparse: sparse: non size-preserving integer to pointer cast
   fs/ceph/addr.c:2214:17: sparse: sparse: non size-preserving integer to pointer cast
   fs/ceph/addr.c:2257:17: sparse: sparse: non size-preserving integer to pointer cast
   fs/ceph/addr.c:2425:9: sparse: sparse: non size-preserving integer to pointer cast
   fs/ceph/addr.c:2638:9: sparse: sparse: non size-preserving integer to pointer cast
   fs/ceph/addr.c:2704:17: sparse: sparse: non size-preserving integer to pointer cast
   fs/ceph/addr.c:2835:17: sparse: sparse: non size-preserving integer to pointer cast
   fs/ceph/addr.c:2835:17: sparse: sparse: non size-preserving integer to pointer cast
   fs/ceph/addr.c:2841:17: sparse: sparse: non size-preserving integer to pointer cast
--
>> fs/ceph/file.c:3182:9: sparse: sparse: invalid initializer
>> fs/ceph/file.c:3182:9: sparse: sparse: invalid initializer
>> fs/ceph/file.c:72:17: sparse: sparse: non size-preserving integer to pointer cast
   fs/ceph/file.c:211:9: sparse: sparse: non size-preserving integer to pointer cast
   fs/ceph/file.c:279:17: sparse: sparse: non size-preserving integer to pointer cast
   fs/ceph/file.c:284:17: sparse: sparse: non size-preserving integer to pointer cast
   fs/ceph/file.c:350:9: sparse: sparse: non size-preserving integer to pointer cast
   fs/ceph/file.c:397:9: sparse: sparse: non size-preserving integer to pointer cast
   fs/ceph/file.c:397:9: sparse: sparse: non size-preserving integer to pointer cast
   fs/ceph/file.c:465:17: sparse: sparse: non size-preserving integer to pointer cast
   fs/ceph/file.c:489:9: sparse: sparse: non size-preserving integer to pointer cast
   fs/ceph/file.c:506:9: sparse: sparse: non size-preserving integer to pointer cast
   fs/ceph/file.c:762:17: sparse: sparse: non size-preserving integer to pointer cast
   fs/ceph/file.c:825:9: sparse: sparse: non size-preserving integer to pointer cast
   fs/ceph/file.c:825:9: sparse: sparse: non size-preserving integer to pointer cast
   fs/ceph/file.c:1041:9: sparse: sparse: non size-preserving integer to pointer cast
   fs/ceph/file.c:1310:9: sparse: sparse: non size-preserving integer to pointer cast
   fs/ceph/file.c:1366:9: sparse: sparse: non size-preserving integer to pointer cast
   fs/ceph/file.c:1410:9: sparse: sparse: non size-preserving integer to pointer cast
   fs/ceph/file.c:1410:9: sparse: sparse: non size-preserving integer to pointer cast
   fs/ceph/file.c:1583:9: sparse: sparse: non size-preserving integer to pointer cast
   fs/ceph/file.c:1596:25: sparse: sparse: non size-preserving integer to pointer cast
   fs/ceph/file.c:1820:9: sparse: sparse: non size-preserving integer to pointer cast
   fs/ceph/file.c:2081:25: sparse: sparse: non size-preserving integer to pointer cast
   fs/ceph/file.c:2090:33: sparse: sparse: non size-preserving integer to pointer cast
   fs/ceph/file.c:2145:25: sparse: sparse: non size-preserving integer to pointer cast
   fs/ceph/file.c:2175:25: sparse: sparse: non size-preserving integer to pointer cast
   fs/ceph/file.c:2181:17: sparse: sparse: non size-preserving integer to pointer cast
   fs/ceph/file.c:2195:9: sparse: sparse: non size-preserving integer to pointer cast
   fs/ceph/file.c:2224:9: sparse: sparse: non size-preserving integer to pointer cast
   fs/ceph/file.c:2258:17: sparse: sparse: non size-preserving integer to pointer cast
   fs/ceph/file.c:2278:17: sparse: sparse: non size-preserving integer to pointer cast
   fs/ceph/file.c:2286:9: sparse: sparse: non size-preserving integer to pointer cast
   fs/ceph/file.c:2670:9: sparse: sparse: non size-preserving integer to pointer cast
   fs/ceph/file.c:2676:17: sparse: sparse: non size-preserving integer to pointer cast
   fs/ceph/file.c:2885:9: sparse: sparse: non size-preserving integer to pointer cast
   fs/ceph/file.c:3157:25: sparse: sparse: non size-preserving integer to pointer cast
   fs/ceph/file.c:3280:17: sparse: sparse: non size-preserving integer to pointer cast
   fs/ceph/file.c:3317:17: sparse: sparse: non size-preserving integer to pointer cast

vim +1808 fs/ceph/addr.c

  1745	
  1746	/*
  1747	 * initiate async writeback
  1748	 */
  1749	static int ceph_writepages_start(struct address_space *mapping,
  1750					 struct writeback_control *wbc)
  1751	{
  1752		struct inode *inode = mapping->host;
  1753		struct ceph_fs_client *fsc = ceph_inode_to_fs_client(inode);
  1754		struct ceph_client *cl = fsc->client;
  1755		struct ceph_writeback_ctl ceph_wbc;
  1756		int rc = 0;
  1757		struct ceph_journal_info __ji;
  1758	
  1759		ceph_blog_enter(fsc, &__ji);
  1760	
  1761		if (wbc->sync_mode == WB_SYNC_NONE && fsc->write_congested) {
  1762			ceph_blog_exit(&__ji);
  1763			return 0;
  1764		}
  1765	
  1766		boutc(cl, "%llx.%llx (mode=%s)\n", ceph_vinop(inode),
  1767		      wbc->sync_mode == WB_SYNC_NONE ? "NONE" :
  1768		      (wbc->sync_mode == WB_SYNC_ALL ? "ALL" : "HOLD"));
  1769	
  1770		if (is_forced_umount(mapping)) {
  1771			ceph_blog_exit(&__ji);
  1772			return -EIO;
  1773		}
  1774	
  1775		ceph_init_writeback_ctl(mapping, wbc, &ceph_wbc);
  1776	
  1777		if (!ceph_inc_osd_stopping_blocker(fsc->mdsc)) {
  1778			rc = -EIO;
  1779			goto out;
  1780		}
  1781	
  1782	retry:
  1783		rc = ceph_define_writeback_range(mapping, wbc, &ceph_wbc);
  1784		if (rc == -ENODATA) {
  1785			/* hmm, why does writepages get called when there
  1786			   is no dirty data? */
  1787			rc = 0;
  1788			goto dec_osd_stopping_blocker;
  1789		}
  1790	
  1791		if (wbc->sync_mode == WB_SYNC_ALL || wbc->tagged_writepages)
  1792			tag_pages_for_writeback(mapping, ceph_wbc.index, ceph_wbc.end);
  1793	
  1794		while (!has_writeback_done(&ceph_wbc)) {
  1795			BUG_ON(ceph_wbc.locked_pages);
  1796			BUG_ON(ceph_wbc.pages);
  1797	
  1798			ceph_wbc.max_pages = ceph_wbc.wsize >> PAGE_SHIFT;
  1799	
  1800	get_more_pages:
  1801			ceph_folio_batch_reinit(&ceph_wbc);
  1802	
  1803			ceph_wbc.nr_folios = filemap_get_folios_tag(mapping,
  1804								    &ceph_wbc.index,
  1805								    ceph_wbc.end,
  1806								    ceph_wbc.tag,
  1807								    &ceph_wbc.fbatch);
> 1808			boutc(cl, "pagevec_lookup_range_tag for tag %#x got %d\n",
  1809				ceph_wbc.tag, ceph_wbc.nr_folios);
  1810	
  1811			if (!ceph_wbc.nr_folios && !ceph_wbc.locked_pages)
  1812				break;
  1813	
  1814	process_folio_batch:
  1815			ceph_process_folio_batch(mapping, wbc, &ceph_wbc);
  1816			ceph_shift_unused_folios_left(&ceph_wbc.fbatch);
  1817	
  1818			/* did we get anything? */
  1819			if (!ceph_wbc.locked_pages)
  1820				goto release_folios;
  1821	
  1822			if (ceph_wbc.processed_in_fbatch) {
  1823				if (folio_batch_count(&ceph_wbc.fbatch) == 0 &&
  1824				    ceph_wbc.locked_pages < ceph_wbc.max_pages) {
  1825					boutc(cl, "reached end fbatch, trying for more\n");
  1826					goto get_more_pages;
  1827				}
  1828			}
  1829	
  1830			rc = ceph_submit_write(mapping, wbc, &ceph_wbc);
  1831			if (rc) {
  1832				/* the OSD client is being torn down, don't retry */
  1833				folio_batch_release(&ceph_wbc.fbatch);
  1834				goto dec_osd_stopping_blocker;
  1835			}
  1836	
  1837			ceph_wbc.locked_pages = 0;
  1838			ceph_wbc.strip_unit_end = 0;
  1839	
  1840			if (folio_batch_count(&ceph_wbc.fbatch) > 0) {
  1841				ceph_wbc.nr_folios =
  1842					folio_batch_count(&ceph_wbc.fbatch);
  1843				goto process_folio_batch;
  1844			}
  1845	
  1846			/*
  1847			 * We stop writing back only if we are not doing
  1848			 * integrity sync. In case of integrity sync we have to
  1849			 * keep going until we have written all the pages
  1850			 * we tagged for writeback prior to entering this loop.
  1851			 */
  1852			if (wbc->nr_to_write <= 0 && wbc->sync_mode == WB_SYNC_NONE)
  1853				ceph_wbc.done = true;
  1854	
  1855	release_folios:
  1856			boutc(cl, "folio_batch release on %d folios (%p)\n",
  1857			      (int)ceph_wbc.fbatch.nr,
  1858			      ceph_wbc.fbatch.nr ? ceph_wbc.fbatch.folios[0] : NULL);
  1859			folio_batch_release(&ceph_wbc.fbatch);
  1860		}
  1861	
  1862		if (ceph_wbc.should_loop && !ceph_wbc.done) {
  1863			/* more to do; loop back to beginning of file */
  1864			boutc(cl, "looping back to beginning of file\n");
  1865			/* OK even when start_index == 0 */
  1866			ceph_wbc.end = ceph_wbc.start_index - 1;
  1867	
  1868			/* to write dirty pages associated with next snapc,
  1869			 * we need to wait until current writes complete */
  1870			ceph_wait_until_current_writes_complete(mapping, wbc, &ceph_wbc);
  1871	
  1872			ceph_wbc.start_index = 0;
  1873			ceph_wbc.index = 0;
  1874			goto retry;
  1875		}
  1876	
  1877		if (wbc->range_cyclic || (ceph_wbc.range_whole && wbc->nr_to_write > 0))
  1878			mapping->writeback_index = ceph_wbc.index;
  1879	
  1880	dec_osd_stopping_blocker:
  1881		ceph_dec_osd_stopping_blocker(fsc->mdsc);
  1882	
  1883	out:
  1884		ceph_put_snap_context(ceph_wbc.last_snapc);
  1885		boutc(cl, "%llx.%llx dend - startone, rc = %d\n", ceph_vinop(inode),
  1886		      rc);
  1887	
  1888		ceph_blog_exit(&__ji);
  1889		return rc;
  1890	}
  1891	

--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki

                 reply	other threads:[~2026-10-31 21:34 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=202610312225.fbDlNNNX-lkp@intel.com \
    --to=lkp@intel.com \
    --cc=amarkuze@redhat.com \
    --cc=ceph-devel@vger.kernel.org \
    --cc=idryomov@gmail.com \
    --cc=oe-kbuild-all@lists.linux.dev \
    --cc=xiubo.li@clyso.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox