|
@@ -246,6 +246,8 @@ static int uids_user_create(struct user_struct *up)
|
|
int error;
|
|
int error;
|
|
|
|
|
|
memset(kobj, 0, sizeof(struct kobject));
|
|
memset(kobj, 0, sizeof(struct kobject));
|
|
|
|
+ if (up->user_ns != &init_user_ns)
|
|
|
|
+ return 0;
|
|
kobj->kset = uids_kset;
|
|
kobj->kset = uids_kset;
|
|
error = kobject_init_and_add(kobj, &uids_ktype, NULL, "%d", up->uid);
|
|
error = kobject_init_and_add(kobj, &uids_ktype, NULL, "%d", up->uid);
|
|
if (error) {
|
|
if (error) {
|
|
@@ -281,6 +283,8 @@ static void remove_user_sysfs_dir(struct work_struct *w)
|
|
unsigned long flags;
|
|
unsigned long flags;
|
|
int remove_user = 0;
|
|
int remove_user = 0;
|
|
|
|
|
|
|
|
+ if (up->user_ns != &init_user_ns)
|
|
|
|
+ return;
|
|
/* Make uid_hash_remove() + sysfs_remove_file() + kobject_del()
|
|
/* Make uid_hash_remove() + sysfs_remove_file() + kobject_del()
|
|
* atomic.
|
|
* atomic.
|
|
*/
|
|
*/
|