Hi, Static analysis on today's linux-next has found an issue with the following commit: commit 55ea6691d52875b921d3712f9a08db8e81e059b4 Author: J. Bruce Fields <bfields@xxxxxxxxxx> Date: Fri Nov 20 17:39:19 2020 -0500 nfsd: skip some unnecessary stats in the v4 case The analysis is as follows: 286 /* 287 * Fill in the post_op attr for the wcc data 288 */ 289 void fill_post_wcc(struct svc_fh *fhp) 290 { 291 bool v4 = (fhp->fh_maxsize == NFS4_FHSIZE); 292 struct inode *inode = d_inode(fhp->fh_dentry); 1. var_decl: Declaring variable err without initializer. 293 __be32 err; 294 2. Condition fhp->fh_post_saved, taking true branch. 295 if (fhp->fh_post_saved) 296 printk("nfsd: inode locked twice during operation.\n"); 297 298 3. Condition !v4, taking false branch. 4. Condition !inode->i_sb->s_export_op->fetch_iversion, taking false branch. 299 if (!v4 || !inode->i_sb->s_export_op->fetch_iversion) 300 err = fh_getattr(fhp, &fhp->fh_post_attr); 5. Condition v4, taking true branch. 301 if (v4) 302 fhp->fh_post_change = 303 nfsd4_change_attribute(&fhp->fh_post_attr, inode); Uninitialized scalar variable (UNINIT)6. uninit_use: Using uninitialized value err. 304 if (err) { 305 fhp->fh_post_saved = false; 306 /* Grab the ctime anyway - set_change_info might use it */ 307 fhp->fh_post_attr.ctime = inode->i_ctime; 308 } else 309 fhp->fh_post_saved = true; 310 } Prior to this commit, variable err used to be always assigned by the call to err = fh_getattr(fhp, &stat), but now it is only called on specific conditions, so now we have this unassigned err issue. Colin