• K
    gfs2: Use container_of() for gfs2_glock(aspace) · 11d8b79e
    Kees Cook 提交于
    Clang's structure layout randomization feature gets upset when it sees
    struct address_space (which is randomized) cast to struct gfs2_glock.
    This is due to seeing the mapping pointer as being treated as an array
    of gfs2_glock, rather than "something else, before struct address_space":
    
    In file included from fs/gfs2/acl.c:23:
    fs/gfs2/meta_io.h:44:12: error: casting from randomized structure pointer type 'struct address_space *' to 'struct gfs2_glock *'
    	return (((struct gfs2_glock *)mapping) - 1)->gl_name.ln_sbd;
    		^
    
    Replace the instances of open-coded pointer math with container_of()
    usage, and update the allocator to match.
    
    Some cleanups and conversion of gfs2_glock_get() and
    gfs2_glock_dealloc() by Andreas.
    Reported-by: Nkernel test robot <lkp@intel.com>
    Link: https://lore.kernel.org/lkml/202205041550.naKxwCBj-lkp@intel.com
    Cc: Bob Peterson <rpeterso@redhat.com>
    Cc: Andreas Gruenbacher <agruenba@redhat.com>
    Cc: Bill Wendling <morbo@google.com>
    Cc: cluster-devel@redhat.com
    Signed-off-by: NKees Cook <keescook@chromium.org>
    Signed-off-by: NAndreas Gruenbacher <agruenba@redhat.com>
    11d8b79e
meta_io.h 2.5 KB