OpenAFS Master Repository branch, master, updated. openafs-devel-1_9_1-175-g1d1a20c

Gerrit Code Review gerrit@openafs.org
Thu, 23 Jun 2022 18:02:22 -0400


The following commit has been merged in the master branch:
commit 1d1a20c33258a9285a16e85a55df9c0fbf4a3ac2
Author: Cheyenne Wills <cwills@sinenomine.net>
Date:   Tue Jun 21 09:57:40 2022 -0600

    afs: Avoid always-false NULL test on AFSTOV(avc)
    
    GCC-12 is flagging a comparison with the following diagnostic:
    
     src/afs/afs_vcache.c:3161:25: error: the comparison will always
        evaluate as ‘false’ for the address of ‘v’ will never be NULL
        [-Werror=address]
     3161 |             AFSTOV(avc) == NULL || vType(avc) == VDIR ||
          |                         ^~
    
    When the vcache structure does not have the vnode embedded the expansion
    of the AFSTOV macro results in:
       ((avc)->v)
    which tests contents of a 'v'.
    
    When the vcache structure does have the vnode embedded, the expansion of
    the macro results in:
       (&(avc)->v)
    which tests the address of 'v', which will never be NULL in this case.
    
    Update afs.h to add a new define 'AFS_VCACHE_EMBEDDED_VNODE' when the
    vcache structure contains an embedded vnode structure.  Restructure the
    preprocessor statements for the AFSTOV definition
    
    Avoid testing AFSTOV(x) against NULL when AFS_VCACHE_EMBEDDED_VNODE is
    defined.
    
    The diagnostic is changed from a warning to an error when configured
    with --enable-checking.
    
    Change-Id: Ib72647fa23e5a7ecd96772b04c6ef76540f44535
    Reviewed-on: https://gerrit.openafs.org/14956
    Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
    Tested-by: BuildBot <buildbot@rampaginggeek.com>
    Reviewed-by: Andrew Deason <adeason@sinenomine.net>
    Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>

 src/afs/afs.h        | 7 ++++---
 src/afs/afs_vcache.c | 5 ++++-
 2 files changed, 8 insertions(+), 4 deletions(-)

-- 
OpenAFS Master Repository