X-Git-Url: http://plrg.eecs.uci.edu/git/?a=blobdiff_plain;f=lib%2Fklist.c;h=0507fa5d84c534917d0842a453bdbcaba386422a;hb=57eae3d8eb904bf06cf186f681ab1e19c32e9a44;hp=d74cf7a29afdb043112fee5c9ad7b37a631a9985;hpb=db25f440f42eca380fcdb339f51cf73633e32485;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);