re: xfs: support inode btree blockcounts in online repair

From: Colin Ian King
Date: Fri Sep 11 2020 - 07:17:38 EST


Hi,

Static analysis with Coverity has detected an issue with the following
commit:

commit 30deae31eab501f568aadea45cfb3258b9e522f5
Author: Darrick J. Wong <darrick.wong@xxxxxxxxxx>
Date: Wed Aug 26 10:48:50 2020 -0700

xfs: support inode btree blockcounts in online repair

the analysis is as follows:

830 cur = xfs_inobt_init_cursor(mp, sc->tp, agi_bp,
sc->sa.agno,
831 XFS_BTNUM_FINO);

const: At condition error, the value of error must be equal to 0.
dead_error_condition: The condition error cannot be true.

832 if (error)

CID: Logically dead code (DEADCODE)dead_error_line: Execution cannot
reach this statement: goto err;.

833 goto err;

While it is tempting to change the if (error) check to if (cur), the
exit error path uses the errnoeous cur as follows:

842 err:
843 xfs_btree_del_cursor(cur, error);
844 return error;

so the error exit path needs some sorting out too.