X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;ds=sidebyside;f=lib%2Fklist.c;h=0507fa5d84c534917d0842a453bdbcaba386422a;hb=92f4f27b7ff3db6186c197847f4ea7553d2ebef9;hp=d74cf7a29afdb043112fee5c9ad7b37a631a9985;hpb=254f9463c5d41a7ac9d35ca24e6c3196814cb890;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);