• Serge E. Hallyn's avatar
    Cache user_ns in struct cred · 47a150ed
    Serge E. Hallyn authored
    If !CONFIG_USERNS, have current_user_ns() defined to (&init_user_ns).
    
    Get rid of _current_user_ns.  This requires nsown_capable() to be
    defined in capability.c rather than as static inline in capability.h,
    so do that.
    
    Request_key needs init_user_ns defined at current_user_ns if
    !CONFIG_USERNS, so forward-declare that in cred.h if !CONFIG_USERNS
    at current_user_ns() define.
    
    Compile-tested with and without CONFIG_USERNS.
    Signed-off-by: default avatarSerge E. Hallyn <serge.hallyn@canonical.com>
    [ This makes a huge performance difference for acl_permission_check(),
      up to 30%.  And that is one of the hottest kernel functions for loads
      that are pathname-lookup heavy.  ]
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    47a150ed
cred.c 21.9 KB