X-Git-Url: http://ftp.safe.ca/?a=blobdiff_plain;f=kernel%2Futsname.c;h=815237a55af8f277b43aea2c81471b9c05a4d00d;hb=3a709703538c471530405556dda136fd0d82b0dc;hp=3ae43936bd88fbd250e4a2951e5ded19c34c74b3;hpb=467e9f4b5086a60a5cb2e032ccaf4a31abadc4c2;p=safe%2Fjmp%2Flinux-2.6 diff --git a/kernel/utsname.c b/kernel/utsname.c index 3ae4393..815237a 100644 --- a/kernel/utsname.c +++ b/kernel/utsname.c @@ -12,8 +12,8 @@ #include #include #include -#include #include +#include /* * Clone a new ns copying an original utsname, setting refcount to 1 @@ -28,7 +28,9 @@ static struct uts_namespace *clone_uts_ns(struct uts_namespace *old_ns) if (!ns) return ERR_PTR(-ENOMEM); + down_read(&uts_sem); memcpy(&ns->name, &old_ns->name, sizeof(ns->name)); + up_read(&uts_sem); kref_init(&ns->kref); return ns; } @@ -39,7 +41,7 @@ static struct uts_namespace *clone_uts_ns(struct uts_namespace *old_ns) * utsname of this process won't be seen by parent, and vice * versa. */ -struct uts_namespace *copy_utsname(int flags, struct uts_namespace *old_ns) +struct uts_namespace *copy_utsname(unsigned long flags, struct uts_namespace *old_ns) { struct uts_namespace *new_ns;