• Eric W. Biederman's avatar
    [PATCH] sysctl: simplify sysctl_uts_string · cf9f151c
    Eric W. Biederman authored
    The binary interface to the namespace sysctls was never implemented resulting
    in some really weird things if you attempted to use sys_sysctl to read your
    hostname for example.
    
    This patch series simples the code a little and implements the binary sysctl
    interface.
    
    In testing this patch series I discovered that our 32bit compatibility for the
    binary sysctl interface is imperfect.  In particular KERN_SHMMAX and
    KERN_SMMALL are size_t sized quantities and are returned as 8 bytes on to
    32bit binaries using a x86_64 kernel.  However this has existing for a long
    time so it is not a new regression with the namespace work.
    
    Gads the whole sysctl thing needs work before it stops being easy to shoot
    yourself in the foot.
    
    Looking forward a little bit we need a better way to handle sysctls and
    namespaces as our current technique will not work for the network namespace.
    I think something based on the current overlapping sysctl trees will work but
    the proc side needs to be redone before we can use it.
    
    This patch:
    
    Introduce get_uts() and put_uts() (used later) and remove most of the special
    cases for when UTS namespace is compiled in.
    Signed-off-by: default avatarEric W. Biederman <ebiederm@xmission.com>
    Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
    cf9f151c
sysctl.c 62.7 KB