[<prev] [next>] [day] [month] [year] [list]
Message-ID: <c9a86317-aef1-407e-809b-466fef57d123@stanley.mountain>
Date: Fri, 22 Nov 2024 15:59:10 +0300
From: Dan Carpenter <dan.carpenter@...aro.org>
To: oe-kbuild@...ts.linux.dev, "Darrick J. Wong" <djwong@...nel.org>
Cc: lkp@...el.com, oe-kbuild-all@...ts.linux.dev,
linux-kernel@...r.kernel.org, Christoph Hellwig <hch@....de>
Subject: fs/xfs/scrub/rtsummary.c:288 xchk_rtsum_compare() warn: missing
error code? 'error'
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: 28eb75e178d389d325f1666e422bc13bbbb9804c
commit: 04f0c3269b41f28c041980a30514850453ded251 xfs: check rt summary file geometry more thoroughly
config: x86_64-randconfig-r071-20241122 (https://download.01.org/0day-ci/archive/20241122/202411222034.c3kvpXzY-lkp@intel.com/config)
compiler: clang version 19.1.3 (https://github.com/llvm/llvm-project ab51eccf88f5321e7c60591c5546b254b6afab99)
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@...el.com>
| Reported-by: Dan Carpenter <dan.carpenter@...aro.org>
| Closes: https://lore.kernel.org/r/202411222034.c3kvpXzY-lkp@intel.com/
smatch warnings:
fs/xfs/scrub/rtsummary.c:288 xchk_rtsum_compare() warn: missing error code? 'error'
vim +/error +288 fs/xfs/scrub/rtsummary.c
526aab5f5790e2 Darrick J. Wong 2023-08-10 221 STATIC int
526aab5f5790e2 Darrick J. Wong 2023-08-10 222 xchk_rtsum_compare(
526aab5f5790e2 Darrick J. Wong 2023-08-10 223 struct xfs_scrub *sc)
526aab5f5790e2 Darrick J. Wong 2023-08-10 224 {
526aab5f5790e2 Darrick J. Wong 2023-08-10 225 struct xfs_bmbt_irec map;
04f0c3269b41f2 Darrick J. Wong 2023-12-15 226 struct xfs_iext_cursor icur;
526aab5f5790e2 Darrick J. Wong 2023-08-10 227
04f0c3269b41f2 Darrick J. Wong 2023-12-15 228 struct xfs_mount *mp = sc->mp;
04f0c3269b41f2 Darrick J. Wong 2023-12-15 229 struct xfs_inode *ip = sc->ip;
04f0c3269b41f2 Darrick J. Wong 2023-12-15 230 struct xchk_rtsummary *rts = sc->buf;
04f0c3269b41f2 Darrick J. Wong 2023-12-15 231 xfs_fileoff_t off = 0;
04f0c3269b41f2 Darrick J. Wong 2023-12-15 232 xfs_fileoff_t endoff;
04f0c3269b41f2 Darrick J. Wong 2023-12-15 233 xfs_rtsumoff_t sumoff = 0;
526aab5f5790e2 Darrick J. Wong 2023-08-10 234 int error = 0;
526aab5f5790e2 Darrick J. Wong 2023-08-10 235
04f0c3269b41f2 Darrick J. Wong 2023-12-15 236 rts->args.mp = sc->mp;
04f0c3269b41f2 Darrick J. Wong 2023-12-15 237 rts->args.tp = sc->tp;
04f0c3269b41f2 Darrick J. Wong 2023-12-15 238
04f0c3269b41f2 Darrick J. Wong 2023-12-15 239 /* Mappings may not cross or lie beyond EOF. */
04f0c3269b41f2 Darrick J. Wong 2023-12-15 240 endoff = XFS_B_TO_FSB(mp, ip->i_disk_size);
04f0c3269b41f2 Darrick J. Wong 2023-12-15 241 if (xfs_iext_lookup_extent(ip, &ip->i_df, endoff, &icur, &map)) {
04f0c3269b41f2 Darrick J. Wong 2023-12-15 242 xchk_fblock_set_corrupt(sc, XFS_DATA_FORK, endoff);
04f0c3269b41f2 Darrick J. Wong 2023-12-15 243 return 0;
04f0c3269b41f2 Darrick J. Wong 2023-12-15 244 }
04f0c3269b41f2 Darrick J. Wong 2023-12-15 245
04f0c3269b41f2 Darrick J. Wong 2023-12-15 246 while (off < endoff) {
04f0c3269b41f2 Darrick J. Wong 2023-12-15 247 int nmap = 1;
04f0c3269b41f2 Darrick J. Wong 2023-12-15 248
526aab5f5790e2 Darrick J. Wong 2023-08-10 249 if (xchk_should_terminate(sc, &error))
526aab5f5790e2 Darrick J. Wong 2023-08-10 250 return error;
526aab5f5790e2 Darrick J. Wong 2023-08-10 251 if (sc->sm->sm_flags & XFS_SCRUB_OFLAG_CORRUPT)
526aab5f5790e2 Darrick J. Wong 2023-08-10 252 return 0;
526aab5f5790e2 Darrick J. Wong 2023-08-10 253
526aab5f5790e2 Darrick J. Wong 2023-08-10 254 /* Make sure we have a written extent. */
04f0c3269b41f2 Darrick J. Wong 2023-12-15 255 error = xfs_bmapi_read(ip, off, endoff - off, &map, &nmap,
526aab5f5790e2 Darrick J. Wong 2023-08-10 256 XFS_DATA_FORK);
526aab5f5790e2 Darrick J. Wong 2023-08-10 257 if (!xchk_fblock_process_error(sc, XFS_DATA_FORK, off, &error))
526aab5f5790e2 Darrick J. Wong 2023-08-10 258 return error;
526aab5f5790e2 Darrick J. Wong 2023-08-10 259
526aab5f5790e2 Darrick J. Wong 2023-08-10 260 if (nmap != 1 || !xfs_bmap_is_written_extent(&map)) {
526aab5f5790e2 Darrick J. Wong 2023-08-10 261 xchk_fblock_set_corrupt(sc, XFS_DATA_FORK, off);
526aab5f5790e2 Darrick J. Wong 2023-08-10 262 return 0;
526aab5f5790e2 Darrick J. Wong 2023-08-10 263 }
526aab5f5790e2 Darrick J. Wong 2023-08-10 264
04f0c3269b41f2 Darrick J. Wong 2023-12-15 265 off += map.br_blockcount;
04f0c3269b41f2 Darrick J. Wong 2023-12-15 266 }
04f0c3269b41f2 Darrick J. Wong 2023-12-15 267
04f0c3269b41f2 Darrick J. Wong 2023-12-15 268 for (off = 0; off < endoff; off++) {
04f0c3269b41f2 Darrick J. Wong 2023-12-15 269 union xfs_suminfo_raw *ondisk_info;
04f0c3269b41f2 Darrick J. Wong 2023-12-15 270
526aab5f5790e2 Darrick J. Wong 2023-08-10 271 /* Read a block's worth of ondisk rtsummary file. */
04f0c3269b41f2 Darrick J. Wong 2023-12-15 272 error = xfs_rtsummary_read_buf(&rts->args, off);
526aab5f5790e2 Darrick J. Wong 2023-08-10 273 if (!xchk_fblock_process_error(sc, XFS_DATA_FORK, off, &error))
526aab5f5790e2 Darrick J. Wong 2023-08-10 274 return error;
526aab5f5790e2 Darrick J. Wong 2023-08-10 275
526aab5f5790e2 Darrick J. Wong 2023-08-10 276 /* Read a block's worth of computed rtsummary file. */
04f0c3269b41f2 Darrick J. Wong 2023-12-15 277 error = xfsum_copyout(sc, sumoff, rts->words, mp->m_blockwsize);
526aab5f5790e2 Darrick J. Wong 2023-08-10 278 if (error) {
04f0c3269b41f2 Darrick J. Wong 2023-12-15 279 xfs_rtbuf_cache_relse(&rts->args);
526aab5f5790e2 Darrick J. Wong 2023-08-10 280 return error;
526aab5f5790e2 Darrick J. Wong 2023-08-10 281 }
526aab5f5790e2 Darrick J. Wong 2023-08-10 282
04f0c3269b41f2 Darrick J. Wong 2023-12-15 283 ondisk_info = xfs_rsumblock_infoptr(&rts->args, 0);
04f0c3269b41f2 Darrick J. Wong 2023-12-15 284 if (memcmp(ondisk_info, rts->words,
04f0c3269b41f2 Darrick J. Wong 2023-12-15 285 mp->m_blockwsize << XFS_WORDLOG) != 0) {
526aab5f5790e2 Darrick J. Wong 2023-08-10 286 xchk_fblock_set_corrupt(sc, XFS_DATA_FORK, off);
04f0c3269b41f2 Darrick J. Wong 2023-12-15 287 xfs_rtbuf_cache_relse(&rts->args);
04f0c3269b41f2 Darrick J. Wong 2023-12-15 @288 return error;
error is zero here.
04f0c3269b41f2 Darrick J. Wong 2023-12-15 289 }
526aab5f5790e2 Darrick J. Wong 2023-08-10 290
04f0c3269b41f2 Darrick J. Wong 2023-12-15 291 xfs_rtbuf_cache_relse(&rts->args);
526aab5f5790e2 Darrick J. Wong 2023-08-10 292 sumoff += mp->m_blockwsize;
526aab5f5790e2 Darrick J. Wong 2023-08-10 293 }
526aab5f5790e2 Darrick J. Wong 2023-08-10 294
526aab5f5790e2 Darrick J. Wong 2023-08-10 295 return 0;
526aab5f5790e2 Darrick J. Wong 2023-08-10 296 }
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
Powered by blists - more mailing lists