Skip to content
  • Arnd Bergmann's avatar
    cred/userns: define current_user_ns() as a function · 0335695d
    Arnd Bergmann authored
    
    
    The current_user_ns() macro currently returns &init_user_ns when user
    namespaces are disabled, and that causes several warnings when building
    with gcc-6.0 in code that compares the result of the macro to
    &init_user_ns itself:
    
      fs/xfs/xfs_ioctl.c: In function 'xfs_ioctl_setattr_check_projid':
      fs/xfs/xfs_ioctl.c:1249:22: error: self-comparison always evaluates to true [-Werror=tautological-compare]
        if (current_user_ns() == &init_user_ns)
    
    This is a legitimate warning in principle, but here it isn't really
    helpful, so I'm reprasing the definition in a way that shuts up the
    warning.  Apparently gcc only warns when comparing identical literals,
    but it can figure out that the result of an inline function can be
    identical to a constant expression in order to optimize a condition yet
    not warn about the fact that the condition is known at compile time.
    This is exactly what we want here, and it looks reasonable because we
    generally prefer inline functions over macros anyway.
    
    Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
    Acked-by: default avatarSerge Hallyn <serge.hallyn@canonical.com>
    Cc: David Howells <dhowells@redhat.com>
    Cc: Yaowei Bai <baiyaowei@cmss.chinamobile.com>
    Cc: James Morris <james.l.morris@oracle.com>
    Cc: "Paul E. McKenney" <paulmck@linux.vnet.ibm.com>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    0335695d