Nikita V. Youshchenko wrote: >> +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. Nothing more than symmetry with checkpoint code, and a pedagogical aspect... Can be replaced by a suitable comment. Oren. _______________________________________________ Containers mailing list Containers@xxxxxxxxxxxxxxxxxxxxxxxxxx https://lists.linux-foundation.org/mailman/listinfo/containers