X-Git-Url: http://plrg.eecs.uci.edu/git/?a=blobdiff_plain;f=lib%2Fklist.c;h=0507fa5d84c534917d0842a453bdbcaba386422a;hb=3f7948b47646b9438d202a7c16f90ca2f98d9dea;hp=d74cf7a29afdb043112fee5c9ad7b37a631a9985;hpb=d86a2fe4dc97cbbad04f5db941d9a1bb82e22b5f;p=firefly-linux-kernel-4.4.55.git diff --git a/lib/klist.c b/lib/klist.c index d74cf7a29afd..0507fa5d84c5 100644 --- a/lib/klist.c +++ b/lib/klist.c @@ -282,9 +282,9 @@ void klist_iter_init_node(struct klist *k, struct klist_iter *i, struct klist_node *n) { i->i_klist = k; - i->i_cur = n; - if (n) - kref_get(&n->n_ref); + i->i_cur = NULL; + if (n && kref_get_unless_zero(&n->n_ref)) + i->i_cur = n; } EXPORT_SYMBOL_GPL(klist_iter_init_node);