nfsd: work around a gcc-5.1 warning
Subsystems (2)
PATCH 1/1 nfsd: work around a gcc-5.1 warning
gcc-5.0 warns about a potential uninitialized variable use in nfsd:
fs/nfsd/nfs4state.c: In function 'nfsd4_process_open2':fs/nfsd/nfs4state.c:3781:3: warning: 'old_deny_bmap' may be used uninitialized in this function [-Wmaybe-uninitialized]
reset_union_bmap_deny(old_deny_bmap, stp);
^fs/nfsd/nfs4state.c:3760:16: note: 'old_deny_bmap' was declared here
unsigned char old_deny_bmap;
^This is a false positive, the code path that is warned about cannot actually be reached.
This adds an initialization for the variable to make the warning go away.
---
This warning shows up in some ARM defconfig builds, which we try to build with no warnings to detect regressions.
fs/nfsd/nfs4state.c +2 -0
@@ -3770,6 +3770,8 @@ nfs4_upgrade_open(struct svc_rqst *rqstp, struct nfs4_file *fp, struct svc_fh *cset_deny (open->op_share_deny, stp); fp->fi_share_deny |= (open->op_share_deny &NFS4_SHARE_DENY_BOTH ); + }else { + old_deny_bmap =0 ; }spin_unlock (&fp->fi_lock);
Quoted 13 lines · Arnd Bergmann
gcc-5.0 warns about a potential uninitialized variable use in nfsd:
fs/nfsd/nfs4state.c: In function 'nfsd4_process_open2':fs/nfsd/nfs4state.c:3781:3: warning: 'old_deny_bmap' may be used uninitialized in this function [-Wmaybe-uninitialized]reset_union_bmap_deny(old_deny_bmap, stp); ^ fs/nfsd/nfs4state.c:3760:16: note: 'old_deny_bmap' was declared here unsigned char old_deny_bmap; ^This is a false positive, the code path that is warned about cannot actually be reached.
Quoted 7 lines
This adds an initialization for the variable to make the warning go away.
Signed-off-by Arnd Bergmann <[email protected]>---
This warning shows up in some ARM defconfig builds, which we try to build with no warnings to detect regressions.
OK, I guess. How about simplifying slightly and doing it this way?--b
commit 3ae81ac291ec
Author: Arnd Bergmann <[email protected]> Date: Tue May 12 23:31:29 2015 +0200
nfsd: work around a gcc-5.1 warning
gcc-5.0 warns about a potential uninitialized variable use in nfsd:
fs/nfsd/nfs4state.c: In function 'nfsd4_process_open2':
fs/nfsd/nfs4state.c:3781:3: warning: 'old_deny_bmap' may be used uninitialized in this function [-Wmaybe-uninitialized]
reset_union_bmap_deny(old_deny_bmap, stp);
^
fs/nfsd/nfs4state.c:3760:16: note: 'old_deny_bmap' was declared here
unsigned char old_deny_bmap;
^
This is a false positive, the code path that is warned about cannot actually be reached.
This adds an initialization for the variable to make the warning go away.
fs/nfsd/nfs4state.c +1 -2
@@ -3861,7 +3861,7 @@ static __be32 nfs4_upgrade_open(struct svc_rqst *rqstp, struct nfs4_file *fp, struct svc_fh *cur_fh, struct nfs4_ol_stateid *stp, struct nfsd4_open *open) { __be32 status; -unsigned char old_deny_bmap; +unsigned char old_deny_bmap = stp->st_deny_bmap;if (!test_access (open->op_share_access, stp))return nfs4_get_vfs_file (rqstp, fp, cur_fh, stp, open);
@@ -3870,7 +3870,6 @@ nfs4_upgrade_open(struct svc_rqst *rqstp, struct nfs4_file *fp, struct svc_fh *cspin_lock (&fp->fi_lock); status =nfs4_file_check_deny (fp, open->op_share_deny);if (status == nfs_ok) { - old_deny_bmap = stp->st_deny_bmap;set_deny (open->op_share_deny, stp); fp->fi_share_deny |= (open->op_share_deny &NFS4_SHARE_DENY_BOTH );
Quoted 19 lines · On Wednesday 13 May 2015 14:11:43 J. Bruce Fields wrote:
OK, I guess. How about simplifying slightly and doing it this way?--b
commit
3ae81ac291ecAuthor: Arnd Bergmann <[email protected]> Date: Tue May 12 23:31:29 2015 +0200nfsd: work around a gcc-5.1 warning
gcc-5.0 warns about a potential uninitialized variable use in nfsd:
fs/nfsd/nfs4state.c: In function 'nfsd4_process_open2':
fs/nfsd/nfs4state.c:3781:3: warning: 'old_deny_bmap' may be used uninitialized in this function [-Wmaybe-uninitialized]
reset_union_bmap_deny(old_deny_bmap, stp);
^
fs/nfsd/nfs4state.c:3760:16: note: 'old_deny_bmap' was declared here
unsigned charold_deny_bmap;
^
Quoted 10 lines
This is a false positive, the code path that is warned about cannot actually be reached.
This adds an initialization for the variable to make the warning go away.
Signed-off-by Arnd Bergmann <[email protected]>Signed-off-by J. Bruce Fields <[email protected]>
Works for me, thanks!
Arnd