Lines Matching refs:ns

23 static void ioam6_ns_release(struct ioam6_namespace *ns)
25 kfree_rcu(ns, rcu);
35 struct ioam6_namespace *ns = (struct ioam6_namespace *)ptr;
37 if (ns)
38 ioam6_ns_release(ns);
51 const struct ioam6_namespace *ns = obj;
53 return (ns->id != *(__be16 *)arg->key);
110 struct ioam6_namespace *ns;
124 ns = rhashtable_lookup_fast(&nsdata->namespaces, &id, rht_ns_params);
125 if (ns) {
130 ns = kzalloc(sizeof(*ns), GFP_KERNEL);
131 if (!ns) {
136 ns->id = id;
148 ns->data = cpu_to_be32(data32);
149 ns->data_wide = cpu_to_be64(data64);
151 err = rhashtable_lookup_insert_fast(&nsdata->namespaces, &ns->head,
154 kfree(ns);
164 struct ioam6_namespace *ns;
177 ns = rhashtable_lookup_fast(&nsdata->namespaces, &id, rht_ns_params);
178 if (!ns) {
183 sc = rcu_dereference_protected(ns->schema,
186 err = rhashtable_remove_fast(&nsdata->namespaces, &ns->head,
192 rcu_assign_pointer(sc->ns, NULL);
194 ioam6_ns_release(ns);
201 static int __ioam6_genl_dumpns_element(struct ioam6_namespace *ns,
217 data32 = be32_to_cpu(ns->data);
218 data64 = be64_to_cpu(ns->data_wide);
220 if (nla_put_u16(skb, IOAM6_ATTR_NS_ID, be16_to_cpu(ns->id)) ||
230 sc = rcu_dereference(ns->schema);
277 struct ioam6_namespace *ns;
284 ns = rhashtable_walk_next(iter);
286 if (IS_ERR(ns)) {
287 if (PTR_ERR(ns) == -EAGAIN)
289 err = PTR_ERR(ns);
291 } else if (!ns) {
295 err = __ioam6_genl_dumpns_element(ns,
363 struct ioam6_namespace *ns;
382 ns = rcu_dereference_protected(sc->ns, lockdep_is_held(&nsdata->lock));
389 if (ns)
390 rcu_assign_pointer(ns->schema, NULL);
403 struct ioam6_namespace *ns;
416 ns = rcu_dereference(sc->ns);
417 if (ns && nla_put_u16(skb, IOAM6_ATTR_NS_ID, be16_to_cpu(ns->id))) {
500 struct ioam6_namespace *ns, *ns_ref;
517 ns = rhashtable_lookup_fast(&nsdata->namespaces, &ns_id, rht_ns_params);
518 if (!ns) {
535 sc_ref = rcu_dereference_protected(ns->schema,
538 rcu_assign_pointer(sc_ref->ns, NULL);
539 rcu_assign_pointer(ns->schema, sc);
542 ns_ref = rcu_dereference_protected(sc->ns,
546 rcu_assign_pointer(sc->ns, ns);
698 struct ioam6_namespace *ns,
780 *(__be32 *)data = ns->data;
841 *(__be64 *)data = ns->data_wide;
926 struct ioam6_namespace *ns,
942 sc = rcu_dereference(ns->schema);
958 __ioam6_fill_trace_data(skb, ns, trace, sc, sclen, is_input);