Quoting Nikita V. Youshchenko (yoush@xxxxxxxxx): > > +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. Yup, good point, that looks unnecessary. thanks, -serge _______________________________________________ Containers mailing list Containers@xxxxxxxxxxxxxxxxxxxxxxxxxx https://lists.linux-foundation.org/mailman/listinfo/containers