> +static struct uts_namespace *do_restore_uts_ns(struct ckpt_ctx *ctx) > ... > +#ifdef CONFIG_UTS_NS > + uts_ns = create_uts_ns(); > + if (!uts_ns) { > + uts_ns = ERR_PTR(-ENOMEM); > + goto out; > + } > + down_read(&uts_sem); > + name = &uts_ns->name; > + memcpy(name->sysname, h->sysname, sizeof(name->sysname)); > + memcpy(name->nodename, h->nodename, sizeof(name->nodename)); > + memcpy(name->release, h->release, sizeof(name->release)); > + memcpy(name->version, h->version, sizeof(name->version)); > + memcpy(name->machine, h->machine, sizeof(name->machine)); > + memcpy(name->domainname, h->domainname, sizeof(name->domainname)); > + up_read(&uts_sem); Could you please explain what for is this down_read() / up_read() ? You operate only on local objects: 'name' points to just-created uts_ns, 'h' is also local data. _______________________________________________ Containers mailing list Containers@xxxxxxxxxxxxxxxxxxxxxxxxxx https://lists.linux-foundation.org/mailman/listinfo/containers