[djwong-xfs:xfs-codex-fixes 119/122] fs/xfs/scrub/quota_repair.c:320 xrep_quota_block() warn: statement has no effect 'int'
kernel test robot <[email protected]>
| Newsgroups | dev.linux.lists.oe-kbuild |
|---|---|
| Message-ID | <[email protected]> |
BCC: [email protected] CC: [email protected] TO: "Darrick J. Wong" <[email protected]> tree: https://git.kernel.org/pub/scm/linux/kernel/git/djwong/xfs-linux.git xfs-codex-fixes head: 8cb8707b5e700fabc3c6bcd612aa914b4bc54fa4 commit: 7606c37564764f10a45b99dd82490fd1499d0dfc [119/122] xfs: reinitialize dquot block if non-first dquot can't load :::::: branch date: 9 hours ago :::::: commit date: 9 hours ago config: csky-randconfig-r072-20260706 (https://download.01.org/0day-ci/archive/20260706/[email protected]/config) compiler: csky-linux-gcc (GCC) 16.1.0 smatch: v0.5.0-9185-gbcc58b9c 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 <[email protected]> | Reported-by: Dan Carpenter <[email protected]> | Closes: https://lore.kernel.org/r/[email protected]/ smatch warnings: fs/xfs/scrub/quota_repair.c:320 xrep_quota_block() warn: statement has no effect 'int' vim +/int +320 fs/xfs/scrub/quota_repair.c a5b91555403e3a0 Darrick J. Wong 2023-12-15 290 a5b91555403e3a0 Darrick J. Wong 2023-12-15 291 /* Fix anything the verifiers complain about. */ a5b91555403e3a0 Darrick J. Wong 2023-12-15 292 STATIC int a5b91555403e3a0 Darrick J. Wong 2023-12-15 293 xrep_quota_block( a5b91555403e3a0 Darrick J. Wong 2023-12-15 294 struct xfs_scrub *sc, a5b91555403e3a0 Darrick J. Wong 2023-12-15 295 xfs_daddr_t daddr, a5b91555403e3a0 Darrick J. Wong 2023-12-15 296 xfs_dqtype_t dqtype, a5b91555403e3a0 Darrick J. Wong 2023-12-15 297 xfs_dqid_t id) a5b91555403e3a0 Darrick J. Wong 2023-12-15 298 { a5b91555403e3a0 Darrick J. Wong 2023-12-15 299 struct xfs_dqblk *dqblk; a5b91555403e3a0 Darrick J. Wong 2023-12-15 300 struct xfs_quotainfo *qi = sc->mp->m_quotainfo; a5b91555403e3a0 Darrick J. Wong 2023-12-15 301 struct xfs_def_quota *defq = xfs_get_defquota(qi, dqtype); a5b91555403e3a0 Darrick J. Wong 2023-12-15 302 struct xfs_buf *bp = NULL; a5b91555403e3a0 Darrick J. Wong 2023-12-15 303 enum xfs_blft buftype = 0; a5b91555403e3a0 Darrick J. Wong 2023-12-15 304 int i; a5b91555403e3a0 Darrick J. Wong 2023-12-15 305 int error; a5b91555403e3a0 Darrick J. Wong 2023-12-15 306 a5b91555403e3a0 Darrick J. Wong 2023-12-15 307 error = xfs_trans_read_buf(sc->mp, sc->tp, sc->mp->m_ddev_targp, daddr, a5b91555403e3a0 Darrick J. Wong 2023-12-15 308 qi->qi_dqchunklen, 0, &bp, &xfs_dquot_buf_ops); a5b91555403e3a0 Darrick J. Wong 2023-12-15 309 switch (error) { a5b91555403e3a0 Darrick J. Wong 2023-12-15 310 case -EFSBADCRC: a5b91555403e3a0 Darrick J. Wong 2023-12-15 311 case -EFSCORRUPTED: a5b91555403e3a0 Darrick J. Wong 2023-12-15 312 /* Failed verifier, retry read with no ops. */ a5b91555403e3a0 Darrick J. Wong 2023-12-15 313 error = xfs_trans_read_buf(sc->mp, sc->tp, a5b91555403e3a0 Darrick J. Wong 2023-12-15 314 sc->mp->m_ddev_targp, daddr, qi->qi_dqchunklen, a5b91555403e3a0 Darrick J. Wong 2023-12-15 315 0, &bp, NULL); a5b91555403e3a0 Darrick J. Wong 2023-12-15 316 if (error) a5b91555403e3a0 Darrick J. Wong 2023-12-15 317 return error; a5b91555403e3a0 Darrick J. Wong 2023-12-15 318 break; a5b91555403e3a0 Darrick J. Wong 2023-12-15 319 case 0: 7606c37564764f1 Darrick J. Wong 2026-07-02 @320 int bad = 0; 7606c37564764f1 Darrick J. Wong 2026-07-02 321 a5b91555403e3a0 Darrick J. Wong 2023-12-15 322 dqblk = bp->b_addr; a5b91555403e3a0 Darrick J. Wong 2023-12-15 323 a5b91555403e3a0 Darrick J. Wong 2023-12-15 324 /* a5b91555403e3a0 Darrick J. Wong 2023-12-15 325 * If there's nothing that would impede a dqiterate, we're a5b91555403e3a0 Darrick J. Wong 2023-12-15 326 * done. a5b91555403e3a0 Darrick J. Wong 2023-12-15 327 */ 7606c37564764f1 Darrick J. Wong 2026-07-02 328 for (i = 0; i < qi->qi_dqperchunk; i++, dqblk++) { 7606c37564764f1 Darrick J. Wong 2026-07-02 329 struct xfs_disk_dquot *ddq = &dqblk->dd_diskdq; 7606c37564764f1 Darrick J. Wong 2026-07-02 330 7606c37564764f1 Darrick J. Wong 2026-07-02 331 if ((ddq->d_type & XFS_DQTYPE_REC_MASK) != dqtype || 7606c37564764f1 Darrick J. Wong 2026-07-02 332 id != be32_to_cpu(ddq->d_id)) 7606c37564764f1 Darrick J. Wong 2026-07-02 333 bad++; 7606c37564764f1 Darrick J. Wong 2026-07-02 334 } 7606c37564764f1 Darrick J. Wong 2026-07-02 335 7606c37564764f1 Darrick J. Wong 2026-07-02 336 if (!bad) { a5b91555403e3a0 Darrick J. Wong 2023-12-15 337 xfs_trans_brelse(sc->tp, bp); a5b91555403e3a0 Darrick J. Wong 2023-12-15 338 return 0; a5b91555403e3a0 Darrick J. Wong 2023-12-15 339 } a5b91555403e3a0 Darrick J. Wong 2023-12-15 340 break; a5b91555403e3a0 Darrick J. Wong 2023-12-15 341 default: a5b91555403e3a0 Darrick J. Wong 2023-12-15 342 return error; a5b91555403e3a0 Darrick J. Wong 2023-12-15 343 } a5b91555403e3a0 Darrick J. Wong 2023-12-15 344 a5b91555403e3a0 Darrick J. Wong 2023-12-15 345 /* Something's wrong with the block, fix the whole thing. */ a5b91555403e3a0 Darrick J. Wong 2023-12-15 346 dqblk = bp->b_addr; a5b91555403e3a0 Darrick J. Wong 2023-12-15 347 bp->b_ops = &xfs_dquot_buf_ops; a5b91555403e3a0 Darrick J. Wong 2023-12-15 348 for (i = 0; i < qi->qi_dqperchunk; i++, dqblk++) { 7606c37564764f1 Darrick J. Wong 2026-07-02 349 struct xfs_disk_dquot *ddq = &dqblk->dd_diskdq; a5b91555403e3a0 Darrick J. Wong 2023-12-15 350 a5b91555403e3a0 Darrick J. Wong 2023-12-15 351 trace_xrep_disk_dquot(sc->mp, dqtype, id + i); a5b91555403e3a0 Darrick J. Wong 2023-12-15 352 a5b91555403e3a0 Darrick J. Wong 2023-12-15 353 ddq->d_magic = cpu_to_be16(XFS_DQUOT_MAGIC); a5b91555403e3a0 Darrick J. Wong 2023-12-15 354 ddq->d_version = XFS_DQUOT_VERSION; a5b91555403e3a0 Darrick J. Wong 2023-12-15 355 ddq->d_type = dqtype; a5b91555403e3a0 Darrick J. Wong 2023-12-15 356 ddq->d_id = cpu_to_be32(id + i); a5b91555403e3a0 Darrick J. Wong 2023-12-15 357 a5b91555403e3a0 Darrick J. Wong 2023-12-15 358 if (xfs_has_bigtime(sc->mp) && ddq->d_id) a5b91555403e3a0 Darrick J. Wong 2023-12-15 359 ddq->d_type |= XFS_DQTYPE_BIGTIME; a5b91555403e3a0 Darrick J. Wong 2023-12-15 360 a5b91555403e3a0 Darrick J. Wong 2023-12-15 361 xrep_quota_fix_timer(sc->mp, ddq, ddq->d_blk_softlimit, a5b91555403e3a0 Darrick J. Wong 2023-12-15 362 ddq->d_bcount, &ddq->d_btimer, a5b91555403e3a0 Darrick J. Wong 2023-12-15 363 defq->blk.time); a5b91555403e3a0 Darrick J. Wong 2023-12-15 364 a5b91555403e3a0 Darrick J. Wong 2023-12-15 365 xrep_quota_fix_timer(sc->mp, ddq, ddq->d_ino_softlimit, a5b91555403e3a0 Darrick J. Wong 2023-12-15 366 ddq->d_icount, &ddq->d_itimer, a5b91555403e3a0 Darrick J. Wong 2023-12-15 367 defq->ino.time); a5b91555403e3a0 Darrick J. Wong 2023-12-15 368 a5b91555403e3a0 Darrick J. Wong 2023-12-15 369 xrep_quota_fix_timer(sc->mp, ddq, ddq->d_rtb_softlimit, a5b91555403e3a0 Darrick J. Wong 2023-12-15 370 ddq->d_rtbcount, &ddq->d_rtbtimer, a5b91555403e3a0 Darrick J. Wong 2023-12-15 371 defq->rtb.time); a5b91555403e3a0 Darrick J. Wong 2023-12-15 372 a5b91555403e3a0 Darrick J. Wong 2023-12-15 373 /* We only support v5 filesystems so always set these. */ 51ed85ad4e4c5ef Darrick J. Wong 2026-06-08 374 dqblk->dd_lsn = 0; a5b91555403e3a0 Darrick J. Wong 2023-12-15 375 uuid_copy(&dqblk->dd_uuid, &sc->mp->m_sb.sb_meta_uuid); a5b91555403e3a0 Darrick J. Wong 2023-12-15 376 xfs_update_cksum((char *)dqblk, sizeof(struct xfs_dqblk), a5b91555403e3a0 Darrick J. Wong 2023-12-15 377 XFS_DQUOT_CRC_OFF); a5b91555403e3a0 Darrick J. Wong 2023-12-15 378 } a5b91555403e3a0 Darrick J. Wong 2023-12-15 379 switch (dqtype) { a5b91555403e3a0 Darrick J. Wong 2023-12-15 380 case XFS_DQTYPE_USER: a5b91555403e3a0 Darrick J. Wong 2023-12-15 381 buftype = XFS_BLFT_UDQUOT_BUF; a5b91555403e3a0 Darrick J. Wong 2023-12-15 382 break; a5b91555403e3a0 Darrick J. Wong 2023-12-15 383 case XFS_DQTYPE_GROUP: a5b91555403e3a0 Darrick J. Wong 2023-12-15 384 buftype = XFS_BLFT_GDQUOT_BUF; a5b91555403e3a0 Darrick J. Wong 2023-12-15 385 break; a5b91555403e3a0 Darrick J. Wong 2023-12-15 386 case XFS_DQTYPE_PROJ: a5b91555403e3a0 Darrick J. Wong 2023-12-15 387 buftype = XFS_BLFT_PDQUOT_BUF; a5b91555403e3a0 Darrick J. Wong 2023-12-15 388 break; a5b91555403e3a0 Darrick J. Wong 2023-12-15 389 } a5b91555403e3a0 Darrick J. Wong 2023-12-15 390 xfs_trans_buf_set_type(sc->tp, bp, buftype); a5b91555403e3a0 Darrick J. Wong 2023-12-15 391 xfs_trans_log_buf(sc->tp, bp, 0, BBTOB(bp->b_length) - 1); a5b91555403e3a0 Darrick J. Wong 2023-12-15 392 return xrep_roll_trans(sc); a5b91555403e3a0 Darrick J. Wong 2023-12-15 393 } a5b91555403e3a0 Darrick J. Wong 2023-12-15 394 -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki