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